Представлен свободный компилятор CUDA-приложений для многоядерных x86-процессоров
Opensource проект Ocelot недавно выпустил JIT-компилятор для CUDA-приложений, позволяющий выполнять одну и ту же программу как на графических процессорах NVIDIA, так и на x86 процессорах, выступая в роли альтернативы технологии OpenCL. Компилятор переводит инструкции GPU в байткод LLVM, а затем генерирует собственный код для различных целевых архитектур. Компилятор был проверен более чем на 100 приложениях CUDA. Весь код системы доступен под лицензией BSD.Предварительный список возможностей:
- Для x86-процессоров:
- Multi-Core выполнение. Выполнение частей CUDA-программ автоматически распределяется между всеми ядрами процессоров в системе.
- Динамическая оптимизация. Оптимизация программных частей по мере их выполнения.
- Поддержка всех особенностей CUDA. Это включает в себя текстуры, OpenGL, события, потоки, MALLOC-массивы и т.д.
- Высокая производительность.
- Для GPU:
- Доступна обертка для JIT-компилятора от NVIDIA, поддерживающего динамическую оптимизацию.
- Динамическая оптимизация. Оптимизация программных частей по мере их выполнения.
- Поддержка плавающих контекстов. Один хост-поток может управлять несколькими GPU-устройствами и указатели могут быть переданы от одного хост-потока к другому.
- Режим Эмуляции:
- Поддержка проверки границ памяти
- Возможность собирать подробную информацию о производительности при работе программы
- Ограничения:
- В настоящее время поддерживается только Linux и требуется система с GCC-4.2 или более поздние версии.
- Недоработана поддержка многопоточных приложений при использовании целевых GPU .
- Нет поддержки SSE для x86-процессоров. Технология должна поддерживаться в следующей версии.
© OpenNet
