В чем разница между PyCUDA и NumbaPro CUDA Python?

Я новичок в CUDA и пытаюсь выяснить, является ли Это (бесплатно) или NumbaPro CUDA Python (не бесплатно) было бы лучше для меня (при условии, что стоимость библиотеки не является проблемой).

оба, похоже, требуют, чтобы вы использовали их соответствующие диалекты Python. Но, похоже, что PyCUDA требует от вас написать функцию ядра в C код, который был бы более громоздким, чем использование NumbaPro, который, кажется, делает всю тяжелую работу за вас.

Is это действительно так? Будут ли заметные различия в производительности?

2 ответов


давайте поговорим о каждой из этих библиотек:

Это:

это это среда программирования Python для CUDA, она дает вам доступ к API параллельных вычислений Nvidia от Python. это написан на C++(базовый уровень) и Python, код C++ будет выполнен на чипе NVIDIA, а код Python будет компилироваться, выполняться и получать результаты кода C++ и автоматически управлять ресурсами, которые его делают одна из мощных библиотек CUDA.

PyCUDA немного отличается от PyOpenCl может использоваться для запуска кода на различных платформах, включая чипы Intel, AMD, NVIDIA и ATI. в отличие от PyCUDA, который может быть запущен только на чипах NVIDIA:

Python + CUDA = PyCUDA

Python + OpenCL = PyOpenCL

NUMBA / NumbaPro:

NUMBA : NumbaPro или недавно Numba (NumbaPro был устаревший, и его функции генерации кода были перемещены в Numba с открытым исходным кодом.)- оптимизирующий компилятор с открытым исходным кодом NumPy для Python, спонсируемый Anaconda, Inc. Он использует замечательную инфраструктуру компилятора LLVM для компиляции синтаксиса Python в машинный код. Numba поддерживает компиляцию Python для работы на оборудовании CPU или GPU, и это fondamentaly написано на Python. легко установить и снабдить.

Как @Wang упомянул, Pycuda больше быстрее, чем Numba.


numbapro сейчас numba на лицензии BSD, которая также бесплатна.

по данным этой отчет pyOpenCL и pyCUDA в 5 раз быстрее, чем numba