Я пытаюсь наложить слой dask поверх моих функций cuda, но когда dask возвращается, я получаю объект NoneType.
from numba import cuda
import numpy as np
from dask.distributed import Client, LocalCluster
@cuda.jit()
def addingNumbersCUDA (big_array, big_array2, save_array):
i = cuda.grid(1)
if i < big_array.shape[0]:
for j in range (big_array.shape[1]):
save_array[i][j] = big_array[i][j] * big_array2[i][j]
if __name__ == "__main__":
cluster = LocalCluster()
client = Client(cluster)
big_array = np.random.random_sample((100, 3000))
big_array2 = np.random.random_sample((100, 3000))
save_array = np.zeros(shape=(100, 3000))
arraysize = 100
threadsperblock = 64
blockspergrid = (arraysize + (threadsperblock - 1))
x = client.submit(addingNumbersCUDA[blockspergrid, threadsperblock], big_array, big_array2, save_array)
y = client.gather(x)
print(y)
Я понимаю, что вы на самом деле не возвращаете функцию cuda ичто результаты возвращаются обратно в массив, который вы вызывали. Поэтому я получаю noneType или потому, что я использую dask неправильно для cuda?