pycuda相关内容

在PyCUDA中遍历2D数组

我试图遍历PyCUDA中的2D数组,但最终得到重复的数组值。我最初会抛出一个小的随机整数数组,并且可以按预期工作,但是当我向其抛出图像时,我会一次又一次看到相同的值。 这是我的代码 img = np.random.randint(20,size =(4,5)) 打印“输入数组“ 打印img img_size = img.shape 打印img_size #nbtes确 ..
发布时间:2020-10-13 00:52:28 Python

如何在pyCUDA内核中生成随机数?

我正在使用pyCUDA进行CUDA编程。我需要在内核函数中使用随机数。 CURAND库无法在其中使用(pyCUDA)。由于在GPU中有很多工作要做,因此在CPU内部生成随机数然后将其传输到GPU将无法正常工作,而是消除了使用GPU的动机。 补充问题: 是否可以使用以下方法在GPU上分配内存1个块和1个线程。 我正在使用多个内核。我需要使用多个SourceModule块吗? 解决 ..
发布时间:2020-10-13 00:44:43 其他开发

如何将二维数组传递到pycuda的内核中?

我找到了答案这里,但是尚不清楚我是否应该调整数组的形状.在将2d数组传递给pycuda内核之前,是否需要将其转换为1d形状? 解决方案 无需重塑2D gpuarray即可将其传递给CUDA内核. 正如我在您链接的答案中所说的那样,二维numpy或PyCUDA数组只是倾斜的线性内存的分配,默认情况下按行主要顺序存储.两者都有两个成员,它们告诉您访问数组所需的所有内容-shape和str ..
发布时间:2020-09-07 06:33:03 Python

得到"LogicError:explicit_context_dependent失败:无效的设备上下文-当前没有活动的上下文? "在ROS中运行tensorRT时

我在TensorRT(使用python)中有一个推理代码.我想在ROS中运行此代码,但是在尝试分配缓冲区时出现以下错误: LogicError: explicit_context_dependent failed: invalid device context - no currently active context? 该代码在ROS包中运行良好. ROS节点发布图像,给定的代码获取 ..
发布时间:2020-07-10 23:03:36 其他开发

在PyCuda中原位转置3D阵列

我有一个3D数组,想转置其前两个维度(x& y),但不转置第三个维度(z).在3D数组A上,我希望得到与numpy的A.transpose((1,0,2))相同的结果.具体来说,我想获取“转置的"全局threadIdx.下面的代码应该将转置索引写入3D数组A中未转置的位置. 有什么建议吗? import numpy as np from pycuda import compiler, ..
发布时间:2020-05-18 23:21:21 Python

如何以与numpy linalg"inv"相同的精度执行PyCUDA 4x4矩阵求逆.或"pinv"功能

我遇到了我的代码的准确性问题,该代码执行4x4矩阵求逆(128、256、512)个数.当我使用原始版本(即numpy函数np.linalg.inv或np.linalg.pinv)时,一切正常. 不幸的是,使用下面的CUDA代码,我将nan和inf的值转换为倒置矩阵. 更明确地说,我将这个矩阵求反: 2.120771107884677649e+09 0.00000000000000 ..
发布时间:2020-05-07 19:41:31 Python

在共享内存中创建数组w / o模板,如PyOpenCL

如何在共享内存中创建数组,而无需使用官方中的模板修改内核示例。或者是使用模板的官方方式? 在PyOpenCL中,我可以通过设置内核参数在本地内存中创建一个数组 kernel.set_arg(1,numpy.uint32(a_width)) ... KERNEL_CODE =“”“ __kernel void matrixMul(__ local float * A_tem ..
发布时间:2017-03-05 19:33:36 其它硬件开发

PyCuda /多处理问题在OS X 10.8

我正在开发一个项目,其中我将计算任务分配给每个与其自己的CUDA设备相关联的多个python进程。 当生成子进程时,以下代码: import pycuda.driver as cuda 类ComputeServer(object): def _init_workers(self): self.workers = [] cuda.init() 在device_id范围内( ..
发布时间:2017-03-04 16:22:01 Python

如何在Linux中配置PyCuda代码?

我有一个简单的(测试)pycuda应用程序,我试图配置它。我试过NVidia的Compute Visual Profiler,它运行程序11次,然后发出以下错误: NV_Warning:忽略无效profiler配置选项:fb0_subp0_read_sectors 错误:分析器数据文件'/home/jguy/proj/gpu/tdbp/pyArch/temp_compute_profil ..
发布时间:2017-03-04 16:20:31 Python

矩阵乘法代码的PyCUDA精度

我试图学习 CUDA 并使用 PyCUDA 来编写一个简单的矩阵乘法代码。两个4x4的随机生成矩阵,我得到了以下解决方案: Cuda的: [[-5170.86181641 -21146.49609375 20690.02929688 - 35413.9296875] [-18998.5 -3199.53271484 13364.62890625 7141.36816406] [ ..
发布时间:2017-03-04 16:18:18 Python

在PyCUDA中打印消息

在简单的CUDA程序中,我们可以通过包括cuPrintf.h的线程来打印消息,但在PyCUDA中不会解释任何地方。 解决方案 在计算能力2.0和更高版本的GPU上, cuPrintf.h 不鼓励使用CUDA的内置printf()。要使用它,只需 #include 并调用 printf()就像在主机上。 PyCUDA wiki有一个具体示例这。 ..
发布时间:2017-03-04 16:05:48 其它硬件开发

driver.Context.synchronize() - 什么要考虑 - -a清理操作失败

我有此代码(由于回答而修改)。 信息 32字节堆栈帧,0字节溢出存储,0字节溢出加载 ptxas信息:使用46个寄存器,120字节cmem [0],176字节 cmem [2 ],76个字节cmem [16] 我不知道还有什么要考虑,例如,当我用Rs = 10000和Rp = 100000运行代码,其中block =(128,1,...)的时候,我们可以使用“numPoi ..
发布时间:2017-03-04 16:04:27 其它硬件开发

我怎么能告诉PyCUDA哪个GPU使用?

我的机器中有两个NVidia卡,两个都有CUDA功能。当我运行示例脚本以开始使用PyCUDA,如下所示: http://documen.tician.de/pycuda/ 我得到错误 nvcc致命:没有为选项'gpu-architecture'定义值'sm_30' 我的计算GPU是计算能力3.0,所以sm_30应该是nvcc编译器的正确选项。我的图形GPU只有CC 1.2, ..
发布时间:2017-03-04 16:03:58 其它硬件开发

PyCUDA / CUDA:非确定性发射失败的原因?

任何关注CUDA的人都可能会看到我对我参与的项目的一些疑问,但对于那些没有我的人来说,我会总结一下。 Three Kernels,One根据一些输入变量生成一个数据集(处理位组合,因此可以呈指数增长),另一个解决这些生成的线性系统,以及另一个减少内核以获得最终结果。 在我的dev机器(Geforce 9800GT,运行在CUDA 4.0下),这工作完全,无论什么时候,无论我抛在它(根据 ..
发布时间:2017-03-04 16:01:55 Python

对pycuda :: complex数组的元素明智的函数

我想在大型2D复杂数组(最终为2 * 12x2 * 12个数据点)上运行函数。然而,pycuda不能按预期工作。 ElementWise函数在2d数组中不工作,所以我使用具有块大小的SourceModule函数。 现在的问题是GPU上的C代码不能与CPU上的numpy计算结果相同。 我使用下面的代码。出现了什么问题? #!/ usr / bin / env python #h ..
发布时间:2017-03-04 15:31:10 其它硬件开发

在CUDA中检查矩阵稳定性的有效方法

许多算法迭代,直到达到一定的收敛准则(例如特定矩阵的稳定性)。在许多情况下,必须每次迭代启动一个CUDA内核。我的问题是:如何有效地和准确地确定矩阵是否在最后一次内核调用的过程中发生了变化?这里有三个似乎同样不令人满意的可能性: 每次在内核中修改矩阵时写入全局标志。这种方法非常有效,但是效率非常低,并且在技术上不是线程安全的。 使用原子操作执行上面的操作。同样,这似乎是低效的,因为在最坏情 ..
发布时间:2017-03-04 15:22:27 其它硬件开发