小编Bry*_*oze的帖子

CUDA 目标的 Numba 和 guvectorize:代码运行速度比预期慢

值得注意的细节

  • 大型数据集 (1000 万 x 5)、(200 x 1000 万 x 5)
  • 大多数是麻木的
  • 每次运行后需要更长的时间
  • 使用 Spyder3
  • 视窗 10

首先是尝试将 guvectorize 与以下函数一起使用。我正在传递一堆 numpy 数组并尝试使用它们在两个数组之间进行乘法运算。如果使用 cuda 以外的目标运行,则此方法有效。但是,当切换到 cuda 时,会导致未知错误:

文件“C:\ProgramData\Anaconda3\lib\site-packages\numba\cuda\decorators.py”,>第 82 行,在 jitwrapper 中 debug=debug)

TypeError: init () 得到了一个意外的关键字参数 'debug'

在按照我可以从这个错误中找到的所有内容之后,我除了死胡同什么也没找到。我猜这是一个非常简单的修复,我完全没有,但哦,好吧。还应该说,此错误仅在运行一次并由于内存过载而崩溃后才会发生。

os.environ["NUMBA_ENABLE_CUDASIM"] = "1"

os.environ["CUDA_VISIBLE_DEVICES"] = "10DE 1B06 63933842"
...
Run Code Online (Sandbox Code Playgroud)

所有的数组都是 numpy

@guvectorize(['void(int64, float64[:,:], float64[:,:], float64[:,:,:], 
int64, int64, float64[:,:,:])'], '(),(m,o),(m,o),(n,m,o),(),() -> (n,m,o)', 
target='cuda', nopython=True)
def cVestDiscount (ed, orCV, vals, discount, n, rowCount, cv):
    for as_of_date in range(0,ed):
        for ID in range(0,rowCount):
            for num …
Run Code Online (Sandbox Code Playgroud)

python performance cuda numba nvprof

3
推荐指数
1
解决办法
1989
查看次数

如何将大于 VRAM 大小的数据传递到 GPU 中?

我试图将比 VRAM 多的数据传递到我的 GPU 中,这导致了以下错误。 CudaAPIError: Call to cuMemAlloc results in CUDA_ERROR_OUT_OF_MEMORY

我创建了这个代码来重现这个问题:

from numba import cuda
import numpy as np


@cuda.jit()
def addingNumbers (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]



big_array = np.random.random_sample((1000000, 500))
big_array2  = np.random.random_sample((1000000, 500))
save_array = np.zeros(shape=(1000000, 500))


arraysize = 1000000
threadsperblock = 64
blockspergrid = (arraysize + (threadsperblock - 1))


d_big_array = cuda.to_device(big_array)
d_big_array2 = cuda.to_device(big_array2)
d_save_array = cuda.to_device(save_array)

addingNumbers[blockspergrid, threadsperblock](d_big_array, …
Run Code Online (Sandbox Code Playgroud)

python cuda numba dask dask-distributed

1
推荐指数
1
解决办法
511
查看次数

标签 统计

cuda ×2

numba ×2

python ×2

dask ×1

dask-distributed ×1

nvprof ×1

performance ×1