问题标签 [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.
cuda - NumaPro Cuda 设备功能 - 返回多个数组和本地内存
如果您想编写一个返回多个数组的设备函数,有谁知道 cuda.jit 装饰器的正确语法是什么?
如果我的设备函数应该返回一个浮点数并有两个整数参数,我的装饰器将是:
现在我希望我的函数采用两个整数参数和两个浮点数,并返回 2 个浮点数组和 2 个整数数组,长度相同(3 到 5 之间),这取决于输入参数。我怎么做?那是否正确:
同样在我的函数中,我将创建我想要返回的数组:cuda.local.array()
因为我使用 inline=True 我会怀疑这会起作用,并且数组只能由相应的线程访问,对吧?
arrays - NumbaPro - 对二维数组进行排序然后对相同键的条目求和的最智能方法
在我的程序中,我有一个包含数百万个条目的数组,如下所示:
如果有帮助,我可以改为制作两个具有相同顺序的数组(而不是一个带有 touples 的数组)。
为了对这个数组进行排序,我知道我可以使用基数排序,因此它具有以下结构:
现在我想对数组中所有键为 1 的值求和。然后是所有键为 2 的值,等等。应该将其写入一个新数组,如下所示:
显然这个数组会小得多,尽管仍然在 100000 个条目的数量级上。现在我的问题是:在 CUDA 中解决我的问题的最佳并行方法是什么?我正在使用 NumbaPro。
为清晰起见进行编辑
我将有两个数组而不是像这样的元组列表:
它们最初是被复制到设备的 numpy 数组。
我想要的是通过键来减少它们,如果可能的话,将缺失的键值(例如,如果数组中没有出现三个)设置为零。
所以我希望它变成:
我事先知道最终的数组有多大。
python - numba-pro 无法加载 CUDA 设备
我正在尝试确定 GPU 计算是否会显着加快我的代码速度。我已经通过 conda 包管理器安装了 numba-pro。
但是,该模块似乎无法检测到 CUDA 设备:
一些背景:
- anaconda 以用户身份安装在 linux 机器上。我没有超级用户。
- 该文件系统是 NAS 的一部分,其中包含我机构中的所有主文件夹。
- anaconda 最初是通过另一台具有相同架构但可能没有 GPU 的机器安装在 NAS 上的。
在带有 GPU 的计算机上,我创建了一个新环境并安装了 numbapro,它还安装了所有依赖项,包括 cudatoolkit
- 我正在从远程笔记本电脑 ssh 进入机器(可能在我使用 ssh 时驱动程序未初始化
我没有安装 lspci,所以我无法检查 GPU,但是我可以通过以下方式查看设备:
猫 /proc/驱动程序/nvidia/版本
NVRM 版本:NVIDIA UNIX x86_64 内核模块 355.11 Wed Aug 26 16:35:41 PDT 2015 GCC 版本:gcc 版本 4.8.5(Gentoo 4.8.5 p1.3,pie-0.6.2)
任何帮助将不胜感激。那是 ssh 问题吗(我将有几天无法访问机器本身)?这是包的构建和链接的问题吗?
python - CUDA/Python:矩阵运算的转换错误
我正在尝试使用 NumbaPro CUDA Python 在矩阵上执行一个非常基本的邻居算法。
功能:
函数输入是一个二维数组 (256x256):
当目标是 CPU 时,此代码执行没有任何问题,但对于 GPU,我收到以下错误:
我找不到有关此错误的任何信息。任何人都知道出了什么问题或问题可能是什么?
编辑:错误是由return
语句引起的。删除return
修复代码。
python - Numbapro 是否支持 SIMD 编程架构
我正在尝试使用单纯形优化解决 GPU 上的熵问题。因为单纯形的每次迭代都依赖于前一个迭代,所以我相信我无法让我的算法并行。
然而,在对 PyOpenCl 和 Numbapro 进行了一些研究之后,OpenCl 提供了一种称为 SIMD 的编程架构。我只是想知道 Numbapro 是否会提供相同的功能?
到目前为止,我已经对部分代码尝试了 jit、autojit 和矢量化,但没有任何性能提升的迹象。
python - CUDA-Python:如何在 Python (Numba 0.25) 中启动 CUDA 内核?
你能帮我理解如何用 Python 编写 CUDA 内核吗?AFAIK, numba.vectorize可以基于target在cuda, cpu, parallel(multi-cpus)上执行。但是target='cuda'需要设置 CUDA 内核。
主要问题是互联网上的许多示例和答案都与已弃用的 NumbaPro 库有关,因此很难遵循诸如未更新的 WIKI 之类的问题,尤其是如果您是新手。
我有:
- 最新的 Anaconda (v2)
- 最新的 Numba (v0.25)
- 最新的 CUDA 工具包 (v7)
这是我得到的错误:
numba.cuda.cudadrv.driver.CudaAPIError: 1调用 cuLaunchKernel 导致 CU DA_ERROR_INVALID_VALUE
python - 如何让 CUDA 与 python 3.5 和 numba 一起工作
通过运行代码:
我得到错误:
如何在 numba 中启用 CUDA?我刚刚在 python 3.5 中安装了 CUDA 工具包 7.5 和最新的 numba 和 numpy。
python - Anaconda 加速 check_cuda()
检查 cuda 的正确 anaconda 加速功能是什么?
使用 numba-pro 你可以使用:
或者
numbapro 现在给出了弃用警告,我一直无法check_conda()
在 anaconda 加速模块下找到等效方法。
python - CudaAPIError: [1] Call to cuLaunchKernel results in CUDA_ERROR_INVALID_VALUE in Python
I'm having this error when trying to run this code in Python using CUDA. I'm following this tutorial but i'm trying it in Windows 7 x64 machine.
https://www.youtube.com/watch?v=jKV1m8APttU
In fact, I run check_cuda() and all tests passed. Can anyone help me what is the exact issue here.
My Code:
Error Message:
python - 函数名和参数之间的 Python 方括号:func[...](...)
我正在从这个笔记本学习如何在 GPU 上加速 python 计算,其中一行让我感到困惑:
在这里,mandel_kernel
是一个装饰的 (by cuda.jit
) 函数,griddim
并且blockdim
是长度为 2: 的元griddim=(32,16)
组blockdim=(32,8)
。
这个方括号是python语法的函数名和参数列表的一部分,还是特定于cuda.jit
装饰的东西?