cuda相关内容

GPGPU中的分歧

我知道,在出现分歧的情况下,IF和ELSE都是在GPU上为每个工作项执行的,最后在掩码的帮助下我们选择了其中一个。但我不能理解,如果我们两个都被执行了,那么它怎么会增加执行单元的空闲。 我已经讨论了一些关于堆栈溢出的问题,但它们与堆栈溢出如何影响执行单元的空闲无关。 有人能给我解释清楚这个概念吗?分歧如何增加执行单元中的停滞或空闲? 推荐答案 在执行两个代码路径以选择一个结 ..
发布时间:2022-08-08 11:53:01 其他开发

CUDA中的常量内存、纹理内存和全局内存

我正在尝试找出CUDA中的常量内存、纹理内存和全局内存之间的区别。 我可以找到以下相关文章,但找不到我的问题的答案 global vs shared memory in CUDA Usage of global vs. constant memory in CUDA 这篇文章讨论了这三种方法对性能的影响: http://forum.beyond3d.com/showthre ..
发布时间:2022-07-02 12:46:34 其他开发

CUDA:将单个位集与位集数组进行异或

我希望将单个位集与一组其他位集(~100k)进行XOR运算,并计算每个XOR结果的集合位数。单个位集的大小约为20k位。 位集已转换为unsigned int数组,以便能够使用内在__popc()函数。‘Bunch’已连续驻留在设备内存中。 我当前的内核代码如下: // Grid/Blocks used for kernel invocation dim3 block(32); ..
发布时间:2022-06-10 16:08:04 C/C++开发

NSight Compute表示:此设备不支持分析-为什么?

我有一台配备了NVIDA GTX 1050Ti GPU(计算能力6.1)的计算机,正在尝试在我用CUDA 11.4构建的程序中分析一个内核。我的操作系统发行版是Devuan GNU/Linux 4 Chimaera(~=Debian 11 Bullseye)。 NSight Compute启动我的程序,并在API调用后向我显示API调用,但当我到达第一次启动内核时,它在API调用清单的详细信 ..
发布时间:2022-04-25 14:28:17 其他开发

如何让CMake自动检测CUDA_COMARTURATIONS的值?

CMake的较新版本(3.18及更高版本)了解CUDA代码编译所针对的CUDA体系结构的选择。目标具有CUDA_ARCHITECTURES属性,当设置该属性时,将为您生成适当的-gencode arch=whatever,code=whatever编译选项。如果您不设置此值,您甚至会收到警告: CMake Error in CMakeLists.txt: CUDA_ARCHITECTUR ..
发布时间:2022-04-25 14:19:29 其他开发

CudaMalLocManaged";比&cudaMalloc";慢吗?

我下载了CUDA 6.0 RC,并在我的应用程序中使用cudaMalLocManaged测试了新的统一内存。但我发现这个内核变慢了。 使用cudaMalloc后跟cudaMemcpy比使用cudaMallocManaged(~0.63)更快(~0.56)。这是预期的吗? 其中一位website声称cudaMallocManged是为了“更快地对Cuda内核进行原型设计”,所以我在想,从 ..
发布时间:2022-04-25 13:13:04 其他开发

Cuda原子导致分支分歧

我正在开发一个CUDA内核来计算图像的直方图(NVIDIA GTX 480)。我注意到,使用Cuda剖析器发现了82.2%的分支分歧。分析器将以下函数指示为分歧的来源,该函数位于名为DEVICE_Functions.h的文件中(尤其是包含RETURN语句的那一行)。 static __forceinline__ unsigned int __uAtomicAdd(unsigned int * ..
发布时间:2022-04-18 09:46:26 其他开发

如何使用CMake将我自己的.o文件与第三方静态库合并,以创建新的合并后的静态库?

我的公司销售依赖于NVIDIA CUDA工具包的商业Linux应用程序。然而,我们的许多客户在他们的计算机上没有超级用户访问权限,并且无法自己安装CUDA,因此我们希望将CUDA静态库与我们的应用程序捆绑在一起。 我们的法律部门表示,我们需要实际将库的内容包含在我们应用程序的一个现有静态库中,而不是仅将CUDA静态库作为单独的文件提供。我可以手动创建这样一个合并库,它工作得很好: li ..
发布时间:2022-04-08 20:05:51 其他开发

将从Python Numba CUDA内核调用加速的FFT

我需要计算256个元素的Float64信号的傅里叶变换。要求是这样的,我需要从cuda.jitt节内部调用这些FFT,并且必须在25usec内完成。唉,cuda.jit编译的函数不允许调用外部库=>我自己写的。唉,我的单核代码仍然太慢了(在Quadro P4000上大约250usec)。有没有更好的办法? 我创建了一个单核FFT函数,它可以提供正确的结果,但速度却慢了10倍。我不明白如何利用 ..
发布时间:2022-04-02 14:19:16 Python

CUDA PTX代码%envreg<;32>;特殊寄存器

我尝试使用CUDA驱动程序API运行.cl内核生成的PTX汇编代码。我采取的步骤如下(标准OpenCL过程): 1)加载.cl内核 2)JIT编译 3)获取编译后的PTX代码并保存。 到目前为止一切顺利。 我注意到PTX ASSEMBLY内部有一些特殊的寄存器,%envreg3,%envreg6等。问题是当我尝试使用驱动程序API执行代码时,这些寄存器没有设置(根据p ..
发布时间:2022-03-27 18:42:58 其他开发

使用支持CUDA的MPI的要求

我想通过支持CUDA的MPI在不同的CUDA设备之间交换数据,如this article中所述。根据我的理解,下面的代码应该可以完成这项工作: #include int main( int argc, char *argv[] ) { int rank; float *ptr = NULL; const size_t elements = 32; MPI_S ..
发布时间:2022-03-10 23:35:39 C/C++开发

使用计算机特定的`.file`路径-CUDA.ptx文件是否可移植?

我正在研究cudaDecodeD3D9 sample以了解CUDA是如何工作的,在编译时它会从.cu文件生成一个.ptx文件。据我目前所知,这个.ptx文件是一个中间表示,它将针对任何特定的GPU进行实时编译。该示例使用类cudaModuleMgr通过cuModuleLoadDataEx加载此文件。 .ptx文件是文本格式,我可以看到它的顶部是我的机器上的一堆硬编码路径,包括我的用户文件夹, ..
发布时间:2022-02-27 20:17:56 C/C++开发

长记分板和短记分板(&r.t)分别是什么?(&x;Long&q;;和&q;Short&q;记分板W.r.t)MIO/L1TEX?

在最新的NVIDIA微体系结构中,出现了一个新的(?)taxonomyWARP停滞原因/WARP调度器状态。 此分类中的两个项目是: 短记分板-MIO队列操作的记分板依赖项。 长记分板-L1TEX操作的记分板依赖项。 我认为,其中使用";记分板";表示无序执行数据依赖关系跟踪(例如,请参阅here)。 我的问题: 形容词“短”或“长”描述什么?是一块 ..
发布时间:2022-02-27 20:14:55 其他开发