Разница между @cuda.jit и @jit(target='gpu')

У меня вопрос по работе с библиотеками Python CUDA из пакетов Accelerate и numba от Continuum. Является ли использование декоратора @jit с target = gpu таким же, как @cuda.jit?


person Perry Holen    schedule 09.03.2016    source источник


Ответы (1)


Нет, они не одинаковы, хотя конечный путь компиляции в PTX на ассемблере одинаков. Декоратор @jit — это общий путь к компилятору, который можно при желании направить на устройство CUDA. Декоратор @cuda.jit фактически представляет собой низкоуровневый диалект ядра Python CUDA, разработанный Continuum Analytics. Таким образом, вы получаете поддержку встроенных переменных CUDA, таких как threadIdx, и спецификаторов пространства памяти, таких как __shared__ в @cuda.jit.

Если вы хотите написать ядро ​​CUDA на Python, скомпилировать и запустить его, используйте @cuda.jit. В противном случае, если вы хотите ускорить существующую часть Python, используйте @jit с целью CUDA.

person Community    schedule 09.03.2016