108得票10回答
NVIDIA与AMD:GPGPU性能比较

我希望听到有编写经验的人关于两种技术的看法。就我个人而言,我只有使用NVIDIA的经验。 NVIDIA CUDA似乎比竞争对手更受欢迎。(仅在本论坛上计算问题标签,“cuda”比“opencl”多三倍,“nvidia”比“ati”多15倍,而“ati-stream”的标签根本不存在)。 另...

106得票4回答
流处理器、块和线程(CUDA)

CUDA核心、流多处理器和CUDA块与线程模型之间的关系是什么? 哪些内容被映射到哪里,以及如何并行化?最大化块数量还是线程数量更有效? 我目前的理解是每个多处理器有8个CUDA核心。每个CUDA核心可以同时执行一个CUDA块。该块中的所有线程在特定核心中按顺序执行。 这个理解正确吗?

106得票2回答
nvidia-smi 显存瞬时利用率说明?

我知道nvidia-smi -l 1每秒会给出GPU使用情况(类似于以下内容)。但是,我需要解释一下Volatile GPU-Util的真正含义。这是指已使用的SM数与总SM数之比,还是占用率,或者是其他什么?+-----------------------------------------...

101得票4回答
在CUDA中,什么是内存合并,如何实现?

什么是CUDA全局内存事务中的“coalesced”?即使阅读了我的CUDA指南,我仍然无法理解。如何做到这一点?在CUDA编程指南的矩阵示例中,按行访问矩阵称为“coalesced”,按列访问称为“coalesced”? 哪一个是正确的,为什么?

100得票13回答
如何使用CUDA清空GPU内存(无法进行物理重置)

我的CUDA程序在执行过程中崩溃了,在内存被刷新之前。结果,设备内存仍然被占用。 我正在GTX 580上运行,nvidia-smi --gpu-reset不支持。 将cudaDeviceReset()放在程序开头只影响由进程创建的当前上下文,并不能清除之前分配的内存。 我远程访问带有该G...

96得票8回答
Java中GPGPU/CUDA/OpenCL的最佳实现方法是什么?

通用图形处理器上的通用计算(GPGPU)是一种非常有吸引力的概念,可以利用GPU的强大计算能力进行任何类型的计算。 我希望使用GPGPU进行图像处理、粒子和快速几何运算。 现在,在这个领域中似乎有两个竞争者:CUDA和OpenCL。我想知道: 在Windows/Mac上,Java是否已...

95得票4回答
为什么CUDA固定内存如此快速?

当我使用钉住内存的方式进行CUDA数据传输时,我观察到数据传输速度大幅提高。在Linux中,实现这一点的底层系统调用是mlock。从mlock的手册页中可以看到,锁定页面可防止它被交换出: mlock()锁定从addr开始并持续len字节的地址范围内的页面。包含指定地址范围部分的所有页...

94得票7回答
LNK2038错误: 'RuntimeLibrary'的值在文件.obj中为'MD_DynamicRelease',与值'MT_StaticRelease'不匹配。

我正在一个项目中将Matlab、C和Cuda集成在一起。我使用了Matlab混合编程,以连接用C编写的matlab mx函数和cuda运行时库,但是出现了关于c文件和库之间静态发布和动态发布冲突的链接错误。有人能解决这个问题吗? error LNK2038: mismatch detecte...

89得票4回答
何时调用cudaDeviceSynchronize?

什么情况下需要调用 cudaDeviceSynchronize 函数? 根据 CUDA 文档的理解,CUDA 核函数是异步执行的,因此似乎应该在每个核函数启动后调用 cudaDeviceSynchronize。然而,我已经尝试了相同的代码(训练神经网络),其中有些代码使用 cudaDevic...

78得票8回答
通过JNI在C和Java之间传递指针

目前,我正在尝试创建一个使用CUDA功能的Java应用程序。CUDA和Java之间的连接正常,但是我有另一个问题,并想问一下我的想法是否正确。 当我从Java调用本地函数时,我会向其传递一些数据,该函数会计算一些东西并返回结果。第一个函数是否可以返回对此结果的引用(指针),以便我可以将其传递...