numba相关内容

我如何才能加速我编写的Python代码:使用空间搜索的球体接触检测(碰撞)

我正在处理一个球体的空间搜索案例,我想在其中找到连接的球体。为此,我在每个球体周围搜索中心与搜索球体中心的距离为(最大球体直径)的球体。一开始,我尝试使用Scipy相关方法,但与等价NumPy方法相比,Scipy方法耗时更长。对于Scipy算法,首先确定K-近邻球体的个数,然后再用cKDTree.query查找,这样会耗费较多的时间。然而,即使通过省略带有常量值的第一步(在这种情况下省略第一步是不 ..
发布时间:2022-08-09 20:38:37 其他开发

如何在Numba中用多维数组中的数字替换NaN?

在普通的Python中,在数字数组中就地用数字替换NaN是微不足道的。但是,在Numba中执行相同操作时,以下操作失败 @jit(nopython=True) def dostuff(): x = np.array([[1,np.nan,3]]); np.nan_to_num(x,copy=False); dostuff() 如何在Numba可编译函数中就地用数字数组中的 ..
发布时间:2022-04-14 17:32:30 Python

从Numba JILED代码调用Cython函数

我知道Numba-jited函数调用另一个jited函数会识别到这一点,并自动使用快速的C调用约定,而不是通过Python对象层,从而避免较高的Python函数调用开销: import numba @numba.jit def foo(x): return x**2 @numba.jit def bar(x): return 4 * foo(x) # this wil ..
发布时间:2022-04-04 13:07:35 Python

筛选NumPy数组

假设我有一个NumPy数组arr,我想要按元素进行筛选,例如 我只想获取低于某个阈值k的值。 有几种方法,例如: 使用生成器:np.fromiter((x for x in arr if x ..
发布时间:2022-04-04 12:53:40 Python

将从Python Numba CUDA内核调用加速的FFT

我需要计算256个元素的Float64信号的傅里叶变换。要求是这样的,我需要从cuda.jitt节内部调用这些FFT,并且必须在25usec内完成。唉,cuda.jit编译的函数不允许调用外部库=>我自己写的。唉,我的单核代码仍然太慢了(在Quadro P4000上大约250usec)。有没有更好的办法? 我创建了一个单核FFT函数,它可以提供正确的结果,但速度却慢了10倍。我不明白如何利用 ..
发布时间:2022-04-02 14:19:16 Python

了解CUDA、Numba、Cupy等的扩展示例

几乎所有在线提供的Numba、CuPy等示例都是简单的数组添加,显示了从CPU单核/线程到GPU的加速比。而命令文档大多缺乏好的例子。此帖子旨在提供更全面的示例。 提供的初始代码here。这是经典元胞自动机的一个简单模型。最初,它甚至不使用numpy,只使用纯python和Pyglet模块进行可视化。 我的目标是将此代码扩展到特定问题(这将是非常大的问题),但首先我认为最好已经针对GP ..
发布时间:2022-02-27 20:10:47 Python

如何使用 numba 在 GPU 上泛化快速矩阵乘法

最近我一直在尝试使用 Numba 库在 Python 中进行 GPU 编程.我一直在使用那里的教程在他们的网站上阅读它,目前我坚持使用他们的示例,可以在这里找到:https://numba.pydata.org/numba-doc/latest/cuda/examples.html.我试图概括一下快速矩阵乘法的示例(其形式为 A*B=C).在测试时,我注意到维度不能完全被每块线程数 (TPB) 整 ..
发布时间:2022-01-10 15:27:01 Python

提高 Pandas 合并性能

我特别没有 Pands Merge 的性能问题,正如其他帖子所暗示的那样,但我有一个类,其中有很多方法,可以对数据集进行大量合并. 班级有大约 10 个小组,大约有 15 个合并.虽然 groupby 非常快,但在 1.5 秒的总执行时间中,这 15 次合并调用大约需要 0.7 秒. 我想在这些合并调用中提高性能.因为我将有大约 4000 次迭代,因此在单次迭代中总共节省 0.5 秒将 ..
发布时间:2021-12-27 21:56:46 Python

各种 numpy 花式索引方法的性能,也使用 numba

因为对于我的程序,Numpy 数组的快速索引是非常必要的,而且考虑到性能,花哨的索引没有很好的声誉,我决定进行一些测试.特别是因为 Numba 发展得非常快,我尝试了哪些方法与 numba 配合得很好. 作为输入,我一直在使用以下数组进行小数组测试: 将 numpy 导入为 np将 numba 导入为 nbx = np.arange(0, 100, dtype=np.float64) # ..
发布时间:2021-12-21 23:42:21 Python

如何使用 numba 在 GPU 上推广快速矩阵乘法

最近我一直在尝试使用 Numba 库在 Python 中进行 GPU 编程.我一直在使用那里的教程在他们的网站上阅读它,目前我停留在他们的示例上,可以在这里找到:https://numba.pydata.org/numba-doc/latest/cuda/examples.html.我试图将快速矩阵乘法的示例概括一下(形式为 A*B=C).在测试时,我注意到维度不能被每块线程数 (TPB) 完全整 ..
发布时间:2021-12-18 23:54:40 Python

没有 Numpy 的矩阵求逆

我想在不使用 numpy.linalg.inv 的情况下反转矩阵. 原因是我使用 Numba 来加速代码,但不支持 numpy.linalg.inv,所以我想知道我是否可以使用“经典"Python 代码反转矩阵. 使用 numpy.linalg.inv 的示例代码如下所示: 将 numpy 导入为 npM = np.array([[1,0,0],[0,1,0],[0,0,1]])Mi ..
发布时间:2021-12-18 23:51:19 Python

Mandelbrot Numba/Numpy 矢量化?

我使用 kivy 在 Python 中编写了一个交互式 mandelbrot 渲染器,您可以在其中使用鼠标指针进行缩放,并正在尽我所能对其进行优化.我目前使用这个实现来渲染设置/缩放(这是一个小片段,只是用来渲染它的两个函数): 将 numba 导入为 nb将 numpy 导入为 np@nb.njit(缓存=真,并行=真)def mandelbrot(c_r, c_i,maxIt): #mand ..
发布时间:2021-09-17 19:17:00 Python