问题标签 [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.
python - cuda python GPU numbapro 3d循环性能不佳
我正在尝试使用分配设置 3D 循环
在我的 GPU 上使用 Python。这是我的 GPU:
http://www.geforce.com/hardware/desktop-gpus/geforce-gt-520/specifications
我正在查看/比较的来源是:
http://nbviewer.ipython.org/gist/harrism/f5707335f40af9463c43
我可能导入了不必要的模块。这是我的代码:
我运行它的结果如下:
当我运行源代码中的示例时,我看到了显着的加速。我认为我的示例运行不正常,因为挂钟时间比我预期的要长得多。我主要从第一个示例链接中的“使用 cuda python 实现更大的加速”部分对此进行了建模。
我相信我已经正确且安全地建立了索引。也许问题出在我的blockdim上?还是格子?或者我的 GPU 使用了错误的类型。我想我读到它们一定是某种类型。我对此很陌生,所以这个问题很可能是微不足道的!
非常感谢任何和所有帮助!
python - 如何更改与 numbapro 模块关联的路径?
我正在尝试运行一个导入 numbapro 的 Python 脚本,但我一直在获取到站点包位置的错误路径。当我从交互式命令行导入 numbapro 时,我没有任何问题,但是当我尝试从 spyder、PyCharm 或提示符运行此演示脚本时:
我收到此错误:
出于某种原因,当 numbapro 站点包实际上位于默认的 anaconda 站点包位置时,它会一直出现在 /opt/... 目录中。任何帮助将不胜感激。我的环境是 Ubuntu 14.10、Python 2.7 和 Anaconda 2.1.0。
python - 与 Python+Numba LLVM/JIT 编译的代码相比,Julia 的性能
到目前为止,我在http://julialang.org/上看到的 Julia 性能基准测试,将 Julia 与纯 Python 或 Python+NumPy 进行了比较。与 NumPy 不同,SciPy 使用 BLAS 和 LAPACK 库,我们可以在其中获得最佳的多线程 SIMD 实现。如果我们假设 Julia 和 Python 在调用 BLAS 和 LAPACK 函数时(在底层)的性能是相同的,那么当使用 Numba 或 NumbaPro 处理不调用 BLAS 或 LAPACK 函数的代码时,Julia 的性能与 CPython 相比如何?
我注意到的一件事是 Julia 使用的是 LLVM v3.3,而 Numba 使用的是基于 LLVM v3.5 构建的 llvmlite。Julia 的旧 LLVM 是否会阻止在 Intel Haswell(AVX2 指令)等较新架构上实现最佳 SIMD?
我对处理非常大的向量的意大利面条代码和小型 DSP 循环的性能比较感兴趣。由于将数据移入和移出 GPU 设备内存的开销,对我而言,后者由 CPU 比 GPU 更有效地处理。我只对单个 Intel Core-i7 CPU 的性能感兴趣,因此集群性能对我来说并不重要。我特别感兴趣的是创建 DSP 功能的并行实现的简单性和成功性。
这个问题的第二部分是 Numba 与 NumbaPro 的比较(忽略 MKL BLAS)。考虑到Numba中装饰器target="parallel"
的新nogil
论点,真的需要@jit
NumbaPro 吗?
python - Numba:“模块”对象没有属性“global_variables”
这是 numba 的基本示例
但它会生成错误消息
我的康达版本是
你有同样的问题吗?帮我..
numpy - 如何正确使用 anaconda 加速 GPU
我正在尝试使用 anaconda 加速来快速计算矩阵。我从一个非常基本的例子开始:乘以 2 个矩阵。
我的目标是以某种方式获得比通常的 numpy.dot 更好的 GPU 乘法
这是我的基本示例,基于此文档。
结果太糟糕了:GPU 比 CPU 慢得令人难以置信
当然我知道内部 numpy 实现已经很好地优化了,但我希望 anaconda 官方示例很好。我正在使用python 3.4.3并在使用这两个帮助库时出错:http ://www.cs.toronto.edu/~tijmen/gnumpy.html和https://github.com/rctn/gpupy
我应该说使用 gpupy 我在 python 2.7 上成功加速。
所以我的问题是:如何通过使用 GPU 获得比 numpy-CPU 更好的矩阵乘法?anaconda 官方示例有什么问题,如果有一个允许以 numpy 方式使用 GPU 的 python3 工作库?
===
结果
不幸的是,python 3没有简单而好的方法,改用2.7
感谢@rth 推荐了很棒的库scikits.cuda
一些基准测试(使用 anaconda mkl 进行测试,所以 numpy 也很快)
和结果
python - Cuda 设备上的 NumbaPro 通过 ssh 连接
我正在使用 Python/NumbaPro 在 Windows 盒子上使用我的 CUDA 兼容 GPU。我使用 Cygwin 作为 shell,并且在 cygwin 控制台中找到我的 CUDA 设备没有问题。我用简单的命令测试
但是当我通过 OpenSSH 连接到盒子时(作为我的 Cygwin 设置的一部分),我收到以下错误:
如何解决这个问题?
numba - 使用 NumbaPro 从另一个 GPU 内核调用一个 GPU 内核
我希望从一个 GPU 内核调用另一个:
我已经device=True
在被调用函数上添加了,但它似乎没有起到作用。
失败的行产生此错误:TypingError: Untyped global name 'sum'
可能有什么问题?
python - Numbapro 是否支持 Maxwell 架构?
我想使用 Numbapro API 在 python 中执行一个 CUDA 内核。我有这个代码:
给我这个错误:
我尝试了另一个 numbapro 示例,并且出现了相同的错误。我不知道这是不支持 5.2 计算能力的 Numbapro 的错误还是 Nvidia NVVM 的问题......建议?
理论上应该支持,但我不知道发生了什么。
我正在使用带有 CUDA 7.0 和驱动程序版本 346.29 的 Linux
python - Numba Pro 和 Theano/pyautodiff 在 GPU 计算方面的主要区别是什么?
Numba Pro 和基于 Theano 的 pyautodiff 都支持将 Python 代码转换为 GPU 机器码。Theano 还将允许对结果语法树进行符号派生,但这超出了我的问题范围。
我的问题是在一个或另一个框架中是否存在技术限制,这会降低代码效率。
python - 使用 Python 和 numba-pro 的 CUDA 内核中的数组
我目前正在编写可以使用 GPU 高度并行化的代码。我的代码结构基本上是这样的:
- 创建两个数组,我们称它们为长度为 N 的 A 和 B。(CPU)
- 执行最终返回标量的 NxN 计算。这些计算仅取决于 A 和 B,因此可以并行化。(图形处理器)
- 将所有这些标量收集在一个列表中并取最小的一个。(中央处理器)
- 使用此标量 (CPU) 修改 A 和 B
- 返回第 2 步并重复,直到满足某个条件。
大多数示例都非常具有说明性,但它们似乎都像这样工作:在 CPU 上执行代码的主要部分,并且只在 GPU 上执行中间矩阵乘法等。特别是主机通常知道内核将要使用的所有变量。
对我来说恰恰相反,我想在 GPU 上执行代码的主要部分,而在 CPU 本身上只执行非常少量的步骤。我的主人对我的个人线程内部发生的事情一无所知。它只管理标量列表以及我的数组 A 和 B。
因此,我的问题是:
- 如何在内核中正确定义变量?特别是,我如何定义和初始化数组/列表?
- 如何编写返回数组的设备函数?(以下 MatrixMultiVector 不起作用)
- 为什么我不能在 CUDA 内核中使用 numpy 和其他库?我有什么选择?
我目前拥有的一个示例如下所示: