问题标签 [numba-pro]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
104 浏览

python - 使用 python 从文件中加速 3d 数组填充

我正在使用 python 填充一个 3d 数组,每个数组元素代表一个像素。

我需要插入数组的值存储在一个非常大的 .txt 文件中(5600 万行,格式如下 - x、y、z、r、g、b)

现在我:

  1. 用零初始化 3d 数组。

  2. 逐行读取文件。

  3. 对于仅采用前 3 个元素 (x,y,z) 的每一行。

  4. 从 x 和 y 计算数组 location[i,j]

  5. 如果 array[i,j] 等于 0 --> 插入从文件中读取的行

  6. 否则跳到下一个文件

对于 5600 万行,我大约需要 160 秒

如何使用 python 加快速度?(GPU可用)

0 投票
1 回答
5396 浏览

cuda - 用 cuda.jit 装饰器替换 njit 装饰器

我有一个 Nvidia GPU,下载了 CUDA,并且正在尝试使用它。

说我有这个代码:

如何使它与 cuda.jit 装饰器而不是 njit 一起工作?

我尝试过的事情:

当我将装饰器从@njit 切换到@cuda.jit 时,我得到: TypingError: No conversion from int64 to none for '$0.5', defined at None。

当我切换装饰器@cuda.jit(device = True) 时,我得到: TypeError: 'DeviceFunctionTemplate' object is not callable。

当我为输入和输出指定类型并使用装饰器@cuda.jit(int32(int32,int32)) 时,我得到:TypeError: CUDA kernel must have void return type。

0 投票
0 回答
683 浏览

python - NUMBA:提前问题

我正在尝试使用numba来加快慢速计算。它与@njit装饰器配合得很好,但我真的需要它作为预编译的提前(AOT) 模块工作。可悲的是,我无法让它工作。这是我用来编译 AOT 模块的代码:

当我编译模块时,它会创建window_cloud_scores.so文件但给出以下警告:

/Users/.../lib/python3.6/site-packages/numba/pycc/../runtime/_nrt_python.c:234:55:警告:传递'PyTypeObject *'的指针类型不兼容(又名'struct _typeobject * ') 到'PyObject *' 类型的参数(又名'struct _object') [-Wincompatible-pointer-types] mi = (MemInfoObject )PyObject_CallFunctionObjArgs(&MemInfoType, addr, NULL); ^~~~~~~~~~~~ /Users/.../python3.6m/abstract.h:425:68:注意:在此处将参数传递给参数“可调用” PyAPI_FUNC(PyObject *) PyObject_CallFunctionObjArgs(PyObject *可调用,

然后当我尝试跑步时

segmentation fault: 11在 python 控制台中得到一个,它是一个内核死掉的 jupyter 笔记本。

然后再次,

效果很好。想法?

0 投票
0 回答
26 浏览

numba - 有没有办法在 Numba 中固定阵列,以便快速向/从设备传输数据?

在 Pytorch 中,有一个选项可以固定 CPU 阵列以快速传输到 GPU(但似乎不适用于 GPU -> CPU)。

我想知道是否有办法将 Numba 数组固定到内存,或者有任何替代技术可以从 CPU 快速传输到 GPU。我没有从文档中看到直接的选项,所以我的猜测是我们需要在数组创建期间指定分配。

0 投票
0 回答
1686 浏览

python - Numba 矩阵乘法比 NumPy 慢得多

我正在用 Numba 实现一个简单的矩阵乘法函数,发现它比 NumPy 慢得多。在下面的示例中,Numba 慢了 40 倍。有没有办法进一步加快 Numba 的速度?提前感谢您的反馈。

0 投票
1 回答
316 浏览

numba - cuDF - groupby UDF 支持日期时间

我有一个包含以下列的 cuDF 数据框:

( dt) 的形式datetime64[ns]

我想编写一个 UDF 以应用于此数据框中的每个组,并dt为每个组获取最大值。这是我正在尝试的,但似乎numba不支持datetime64[ns]UDF 中的值。

这是我得到的错误:

我有类似的函数,可以很好地处理整数和浮点数。这是否意味着 numba 不支持日期时间?

0 投票
1 回答
309 浏览

python-3.x - How fast or slow is the Constant memory that Numba allows a device to allocate, when compared to local and shared memories?

I can't find any clarity as to what is the performance of the so called Constant memory referred to in the Numba documentation:

https://numba.pydata.org/numba-doc/dev/cuda/memory.html#constant-memory

I am curious as to what are the size limits for this memory, how fast/slow it is when compared to other memory types and if there are any pitfalls using it.

Thank you!

0 投票
1 回答
154 浏览

numba - 滚动线性回归,用于 cuDF 数据帧上的 groupby 操作

我想使用 cuML LinearRegression 计算 y_value 在 x_value 上的滚动斜率。

样本数据(cuDF 数据框):

使用 LinearRegression 的简单函数:

我想做的事:

但是,我收到一个错误:NotImplementedError: Handling UDF with null values is not yet supported. 有没有办法克服这个错误?谢谢你。

0 投票
2 回答
302 浏览

cuda - 如何使用共享内存和全局内存,是否可以使用共享作为计算的中间阶段

我正在尝试用 numba cuda 编写代码。我看到了很多分别处理设备内存和共享内存的例子。我陷入了困境和困惑。代码或函数是否可以同时处理两者,例如代码可以在某个规模和另一个规模使用设备中使用共享内存将数字相乘。

另一件要问的事情是,当我试图逐步使代码复杂化以计算适应度函数时,我使用共享内存的空间作为中间阶段 sD,并根据标记 harris 演示文稿用一半线程进行缩减步骤,并将 2 添加为 s Sdata [tid] += Sdata[tid+s]

当我写下面的代码时,我得到了一个错误,我不知道为什么。

错误显示为

0 投票
2 回答
194 浏览

python - 并行计算的性能低于 Python 中的无并行计算

我只是写了一个在 Numba 上处理列表和并行的示例,如下所示:Parallel 和 No Parallel:

平行

无并行

并比较评估时间

结果:333332833333500000 经过的时间是 0.233338 秒。

结果:333332833333500000 经过的时间是 0.195136 秒。

完整代码可以从 Colab 获得