问题标签 [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 回答
906 浏览

cuda - NumaPro Cuda 设备功能 - 返回多个数组和本地内存

如果您想编写一个返回多个数组的设备函数,有谁知道 cuda.jit 装饰器的正确语法是什么?

如果我的设备函数应该返回一个浮点数并有两个整数参数,我的装饰器将是:

现在我希望我的函数采用两个整数参数和两个浮点数,并返回 2 个浮点数组和 2 个整数数组,长度相同(3 到 5 之间),这取决于输入参数。我怎么做?那是否正确:

同样在我的函数中,我将创建我想要返回的数组:cuda.local.array() 因为我使用 inline=True 我会怀疑这会起作用,并且数组只能由相应的线程访问,对吧?

0 投票
1 回答
324 浏览

arrays - NumbaPro - 对二维数组进行排序然后对相同键的条目求和的最智能方法

在我的程序中,我有一个包含数百万个条目的数组,如下所示:

如果有帮助,我可以改为制作两个具有相同顺序的数组(而不是一个带有 touples 的数组)。

为了对这个数组进行排序,我知道我可以使用基数排序,因此它具有以下结构:

现在我想对数组中所有键为 1 的值求和。然后是所有键为 2 的值,等等。应该将其写入一个新数组,如下所示:

显然这个数组会小得多,尽管仍然在 100000 个条目的数量级上。现在我的问题是:在 CUDA 中解决我的问题的最佳并行方法是什么?我正在使用 NumbaPro。

为清晰起见进行编辑

我将有两个数组而不是像这样的元组列表:

它们最初是被复制到设备的 numpy 数组。

我想要的是通过键来减少它们,如果可能的话,将缺失的键值(例如,如果数组中没有出现三个)设置为零。

所以我希望它变成:

我事先知道最终的数组有多大。

0 投票
1 回答
1369 浏览

python - numba-pro 无法加载 CUDA 设备

我正在尝试确定 GPU 计算是否会显着加快我的代码速度。我已经通过 conda 包管理器安装了 numba-pro。

但是,该模块似乎无法检测到 CUDA 设备:

一些背景:

  1. anaconda 以用户身份安装在 linux 机器上。我没有超级用户。
  2. 该文件系统是 NAS 的一部分,其中包含我机构中的所有主文件夹。
  3. anaconda 最初是通过另一台具有相同架构但可能没有 GPU 的机器安装在 NAS 上的。
  4. 在带有 GPU 的计算机上,我创建了一个新环境并安装了 numbapro,它还安装了所有依赖项,包括 cudatoolkit

    1. 我正在从远程笔记本电脑 ssh 进入机器(可能在我使用 ssh 时驱动程序未初始化
    2. 我没有安装 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 问题吗(我将有几天无法访问机器本身)?这是包的构建和链接的问题吗?

0 投票
1 回答
368 浏览

python - CUDA/Python:矩阵运算的转换错误

我正在尝试使用 NumbaPro CUDA Python 在矩阵上执行一个非常基本的邻居算法。

功能:

函数输入是一个二维数组 (256x256):

当目标是 CPU 时,此代码执行没有任何问题,但对于 GPU,我收到以下错误:

我找不到有关此错误的任何信息。任何人都知道出了什么问题或问题可能是什么?

编辑:错误是由return语句引起的。删除return修复代码。

0 投票
1 回答
57 浏览

python - Numbapro 是否支持 SIMD 编程架构

我正在尝试使用单纯形优化解决 GPU 上的熵问题。因为单纯形的每次迭代都依赖于前一个迭代,所以我相信我无法让我的算法并行。

然而,在对 PyOpenCl 和 Numbapro 进行了一些研究之后,OpenCl 提供了一种称为 SIMD 的编程架构。我只是想知道 Numbapro 是否会提供相同的功能?

到目前为止,我已经对部分代码尝试了 jit、autojit 和矢量化,但没有任何性能提升的迹象。

0 投票
1 回答
1425 浏览

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

0 投票
1 回答
1225 浏览

python - 如何让 CUDA 与 python 3.5 和 numba 一起工作

通过运行代码:

我得到错误:

如何在 numba 中启用 CUDA?我刚刚在 python 3.5 中安装了 CUDA 工具包 7.5 和最新的 numba 和 numpy。

0 投票
1 回答
1841 浏览

python - Anaconda 加速 check_cuda()

检查 cuda 的正确 anaconda 加速功能是什么?

使用 numba-pro 你可以使用:

或者

numbapro 现在给出了弃用警告,我一直无法check_conda()在 anaconda 加速模块下找到等效方法。

0 投票
2 回答
4627 浏览

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:

0 投票
1 回答
1692 浏览

python - 函数名和参数之间的 Python 方括号:func[...](...)

我正在从这个笔记本学习如何在 GPU 上加速 python 计算,其中一行让我感到困惑:

在这里,mandel_kernel是一个装饰的 (by cuda.jit) 函数,griddim并且blockdim是长度为 2: 的元griddim=(32,16)blockdim=(32,8)

这个方括号是python语法的函数名和参数列表的一部分,还是特定于cuda.jit装饰的东西?