cuda相关内容

如何通过减少找到CUDA中的数组总和

我正在实现一个函数来使用归约来查找数组的总和,我的数组有 32*32 个元素,它的值是 0 ... 1023.我的预期总和值为 523776,但我的结果是 15872,这是错误的.这是我的代码: #include #include #定义 w 32#定义 h 32#define N w*h__global__ void reduce(int *g_idata, ..
发布时间:2022-01-10 16:03:44 其他开发

cuda 内核不能同时执行

我正在尝试探索具有 2.0 功能的 Nvidia Quadro 4000 的并发内核执行属性. 我使用了 2 个不同的流,它们的运行方式相同: 复制 H2D 两个不同的固定内存块 运行内核 将 D2H 两个不同的块复制到固定内存. 两个流的内核完全相同,每个执行时间为 190 毫秒. 在 Visual profiler(5.0 版)中,我希望两个内核同时开始执行,但它们 ..
发布时间:2022-01-10 16:03:35 其他开发

CUDA 内核计时策略:优点和缺点?

在为 CUDA 内核计时时,以下内容不起作用,因为内核在执行时不会阻塞 CPU 程序执行: 开始计时器内核>>();结束计时器 我已经看到了三种(成功地)为 CUDA 内核计时的基本方法: (1) 两个 CUDA eventRecords. 浮动响应时间;//结果将以毫秒为单位cudaEvent_t 开始;cudaEventCreate(&start);cudaEvent ..
发布时间:2022-01-10 16:03:01 其他开发

二维字符数组到 CUDA 内核

我需要帮助将 char[][] 转移到 Cuda 内核.这是我的代码: __global__无效内核(char** BiExponent){for(int i=0; i 我使用:nvcc.exe" -gencode=arch=compute_20,code=\"sm_20,compute_20\" --use-local-env --cl-version 2012 -ccbin 感谢您的 ..
发布时间:2022-01-10 16:02:25 C/C++开发

CUDA 内核融合如何提高 GPU 上的内存绑定应用程序的性能?

我一直在研究比 GPU 上用于基本计算的设备可用内存更大的流数据集.主要限制之一是 PCIe 总线通常限制在 8GB/s 左右,内核融合可以帮助重用可重用的数据,并且它可以利用 GPU 内的共享内存和局部性.我发现的大多数研究论文都很难理解,并且大多数都在复杂的应用程序中实现了融合,例如 https://ieeexplore.ieee.org/document/6270615.我读过很多论文,但都 ..
发布时间:2022-01-10 16:01:47 其他开发

静态推力自定义分配器?

设置几个事实: Thrust 并非所有操作都在原地操作. 您可以为 thrust::device_vectors 提供自定义分配器. 我查看了 thrust::system 和 thrust::system::cuda 并没有找到任何看起来像静态系统分配器的东西.我的意思是,我看不到替换推力在内部使用的分配器为异地算法分配额外内存的方法. 我也很难相信没有就地的函数使用给定 t ..
发布时间:2022-01-10 16:01:40 其他开发

JCuda中的JIT,加载多个ptx模块

我在 这个问题中说过我有一些在 JCuda 中加载 ptx 模块时出现问题,在 @talonmies 的想法之后,我实现了他的解决方案的 JCuda 版本来加载多个 ptx 文件并将它们作为单个模块加载.这是代码的相关部分: 导入静态 jcuda.driver.JCudaDriver.cuLinkAddFile;导入静态 jcuda.driver.JCudaDriver.cuLinkComple ..
发布时间:2022-01-10 16:01:14 其他开发

设备内存上的推力减小结果

是否可以将thrust::reduce 操作的返回值留在设备分配的内存中?如果是的话,是否像将值分配给 cudaMalloc'ed 区域一样简单,还是应该使用推力::device_ptr? 解决方案 是否可以将推力::reduce 操作的返回值留在设备分配的内存中? 简短的回答是否定的. thrust reduce 返回一个数量,即减少的结果.此数量必须存放在主机常驻变量中 ..
发布时间:2022-01-10 16:00:46 其他开发

共享内存上原子操作的性能

当提供的地址驻留在块共享内存中时,原子操作如何执行?在原子操作过程中,是暂停块内其他线程对同一个共享内存bank的访问,还是停止其他线程执行任何指令,甚至停止跨所有块的线程,直到原子操作完成? 解决方案 共享内存硬件包括1024个锁.如果调用对共享内存进行操作的原子内在函数,编译器会发出一个短循环来获取并有条件地释放锁,或者如果未获取锁则循环.因此,性能可能非常依赖数据:如果一个 warp ..
发布时间:2022-01-10 16:00:29 其他开发

如果我使用 Windows RDP 远程访问计算机,我可以在计算机上运行 CUDA 程序吗?

我有一台位于其他地方的服务器.在该服务器上,我计划运行一个程序,以利用该物理机器上支持 CUDA 的图形卡.该程序与图形无关——它只会将图形卡用于计算数学. 我能在那台机器上运行这个程序吗?如果我使用 Windows 远程桌面登录,程序会识别物理显卡吗?还是因为我在远程,服务器甚至不会识别出插入了显卡? 编辑:我想提一下,所有计算都将远程进行,这台机器上的任何内容都取决于我家用 PC ..
发布时间:2022-01-10 16:00:05 其他开发

什么是“其他"?Nsight 分析器显示的问题停顿原因?

我的内核在 CC 3.0 (Kepler) 上的性能比在 CC 2.0 (Fermi) 上的性能差.在 Nsight 分析器中,Warp Issue Efficiency 图表显示 60% 的时间没有符合条件的 warp,Issue Stall Reasons 图表显示 60%这些是由于“其他"造成的. 我想知道其他问题停滞的原因是什么以及我可以做些什么来减少它们. CUDA 5.0. ..
发布时间:2022-01-10 15:59:57 其他开发

CUDA 在哪里为内核分配堆栈帧?

我的内核调用因“内存不足"而失败.它大量使用了堆栈帧,我想知道这是否是它失败的原因. 使用 --ptxas-options=-v 调用 nvcc 时,它会打印以下配置文件信息: 150352 字节堆栈帧,0 字节溢出存储,0 字节溢出加载ptxas 信息:使用了 59 个寄存器,40 字节 cmem[0] 硬件:GTX480、sm20、1.5GB 设备内存、48KB 共享内存/多处理器 ..
发布时间:2022-01-10 15:59:51 其他开发

Cuda,3d 块中的执行线程顺序

作为标题,我想知道正确的执行顺序,以防我们有 3d 块 我想记得我已经读过一些关于它的东西,但那是前一段时间,我不记得在哪里,但它是由一个看起来不那么可靠的人来的.. 无论如何,我想对此进行一些确认. 是不是如下(分经)? [0, 0, 0]...[blockDim.x, 0, 0] - [0, 1, 0]...[blockDim.x, 1, 0] - (...) - [0 ..
发布时间:2022-01-10 15:59:42 其他开发