问题标签 [numba]

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 回答
3408 浏览

python - Numba autojit 函数比矢量化 Numpy 方法慢

我有以下 for 循环来构造值列表:

为了加快列表的创建,我使用矢量化方法将其创建为 Numpy 数组。这种方法比等效的 for 循环快得多,特别是对于p增加范围的大值。

为了进一步加快数组的创建速度,我想我会尝试使用 Numba 包。以下是我目前的尝试。

不幸的是,我没有看到使用 Numba 带来的任何性能提升,它比仅使用 Numpy 的矢量化方法慢近 3 倍。

关于如何使用 Numba 的任何建议?

0 投票
0 回答
216 浏览

python - 无法从 numba (python) 导入 size_t

我是 python 新手,我正在尝试运行以下代码:

我的问题是尝试从 numba 导入 size_t 时出现“未解决的参考”错误。有人可以帮我解决这个问题吗?

谢谢!

0 投票
0 回答
72 浏览

python - Autojit - 如何提高旋转性能

我有以下代码:

我正在测试它,我得到了1.7300620079几秒钟。但是,当我使用@autojit装饰器时,情况会变得更糟。

1.92721390724几秒钟。我应该改变一些东西以获得更好的表现吗?

测试代码如下:

0 投票
1 回答
968 浏览

python - 如何在 python 中有效地使用 JIT 和 mpmath / gmpy?

这是我第一次尝试将 JIT 用于 python,这是我想要加速的用例。我读了一些关于 numba 的内容,它看起来很简单,但是下面的代码没有提供任何加速。请原谅我可能犯的任何明显错误。

我还尝试按照 cython 的基本教程的建议进行操作,但时间上没有区别。 http://docs.cython.org/src/tutorial/cython_tutorial.html

我猜我必须做一些类似声明变量的事情?使用其他库?只为所有内容使用 for 循环?我将不胜感激任何可以参考的指导或示例。

例如,我从上一个问题中了解到,与 numpy 相比,mpmath 中的 Elementwise 操作速度较慢,其解决方案是使用 gmpy 而不是 mpmath 明显更快。

0 投票
2 回答
772 浏览

python - 反应扩散算法中的 Numba 或 Cython 加速

我想加速用 Python 和 NumPy 编写的代码。我使用 Gray-Skott 算法(http://mrob.com/pub/comp/xmorphia/index.html)作为反应扩散模型,但使用 Numba 和 Cython 会更慢!有没有可能加快速度?提前致谢!

Python+NumPy

努巴

赛通

使用示例:

0 投票
2 回答
1123 浏览

pytest - 分析 numba 包装函数的覆盖率

我编写了一个 python 模块,其中大部分都包裹在@numba.jit装饰器中以提高速度。我还为这个模块编写了很多测试,我运行(在 Travis-CI 上)使用py.test. 现在,我正在尝试查看这些测试的覆盖范围,使用pytest-cov,这只是一个依赖的插件coverage(希望将所有这些集成到工作服中)。

不幸的是,似乎numba.jit在所有这些函数上使用会让人coverage认为这些函数从未被使用过——情况确实如此。所以我的测试基本上没有报告覆盖率。这并不是一个巨大的惊喜,因为numba正在获取该代码并对其进行编译,因此代码本身实际上从未被使用过。但我希望有时你会在 python 中看到一些魔力......

有没有什么有用的方法可以结合这两个优秀的工具?如果做不到这一点,是否有任何其他工具可以用来测量 numba 的覆盖率?

[我做了一个最小的工作示例来显示这里的区别。)

0 投票
1 回答
373 浏览

python - 用 numba 加速拍摄?

是否可以使用 numba 加速 np.take?

这是我的尝试,但速度要慢得多。我不能使用 nopython 模式,因为它不喜欢 np.empty_like 命令。

结果如下:

0 投票
5 回答
948 浏览

python - 如何在python中加速多个内积

我有一些简单的代码可以执行以下操作。

F它使用 +-1 个条目迭代所有可能长度为 n 的列表。对于每一个,它都会遍历所有可能的长度2n列表S,其中包含 +-1 个条目,其中 $S$ 的前半部分只是后半部分的副本。该代码计算 的 与长度的F每个子列表的内积。对于每个 F,S,它计算在第一个非零内积之前为零的内积。Sn

这是代码。

正确的输出n=14

使用 pypy,对于 n = 14,这需要 1 分 18 秒。不幸的是,我真的很想为 16、18、20、22、24、26 运行它。我不介意使用 numba 或 cython,但如果可能的话,我想靠近 python。

非常感谢任何加快这一进程的帮助。


我将在这里记录最快的解决方案。(如果我错过了更新的答案,请告诉我。)

  • n = 22 在 9m35.081s 由 Eisenstat (C)
  • n = 18 在 1m16.344s 由 Eisenstat (pypy)
  • n = 18 在 2m54.998s 由 Tupteq (pypy)
  • n = 14 at 26s by Neil (numpy)
  • n - 14 在 11m59.192s 由 kslote1 (pypy)
0 投票
1 回答
164 浏览

python - Numbapro 试图对 jit 函数进行矢量化

我试图通过尝试一些简单的算法来理解 numbapro 中 jit/vectorize 背后的语义。这是米勒拉宾素性测试,我想随后运行多次。

这工作正常

但是用

给出错误

我知道应该在 ufunc 上使用矢量化,但是我缺少什么来使它成为 ufunc?

0 投票
1 回答
238 浏览

python - 如何使这个舍入功能更快?

我正在尝试编写一个函数来将值四舍五入到列表中最接近的有效赔率: https ://api.developer.betfair.com/services/webapps/docs/display/1smk3cen4v3lu3yomq5qye0ni/Betfair+Price+Increments

我的代码在这里:

使用 numba 的地板版本在这里:

我使用这个来计时代码:

我的机器上的时间:

如何使用 numpy 和/或 numba 加速代码?

解决方案:

我发现http://numba.pydata.org/numba-doc/dev/examples.html中的多线程示例可以变成矢量化函数。使用它可以在我的 2 核笔记本电脑上获得最佳性能。

Numba 的 Vectorize 功能也可以,虽然不是很好。

我已将矢量化器代码上传到 github:https ://github.com/jsphon/MTVectorizer

下面是时序比较图。x 轴表示输入数组的大小。y 轴代表时间。

此图表来自双核笔记本电脑。

时序比较

此图表来自具有 i7 920 CPU 的台式机。它有8个核心。

在此处输入图像描述