Я новичок в Numba и CUDA и выполнил измерения для сравнения функций cuda jitted с Numpy на нескольких основных примерах. Например,Ожидаемое ускорение Numba/CUDA против Numpy
@cuda.jit("void(float32[:])")
def gpu_computation(array):
pos = cuda.grid(1)
if pos < array.size:
array[pos] = array[pos] ** 2.6
по сравнению с однотридовой
def cpu_computation(array):
array = array ** 2.6
return array
с
n=1000000
array = np.linspace(0, 100, num=n, dtype=np.float32)
threads per block = 32
blocks per grid = 31250
я получаю около 3x с ускорения GPU. Это также то, что я получаю при выполнении матричного умножения (как базовой, так и интеллектуальной версии, найденной в документации Numba). Оптимизация с копированием на/с устройства не помогла.
Ожидается ли такое ускорение? Я ожидал на порядок больше. Моя машина: Mac OSX с GeForce GTX 775M 2048 МБ и CUDA 7.5.30.
Спасибо, кажется, важно знать. Я обновил фрагмент кода выше, чтобы показать, что я сейчас измеряю, но пока не вижу разницы. – jam123