Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux nvidia GPU上的计算单元和预期核心混淆_Linux_Opencl_Gpgpu_Nvidia_Pyopencl - Fatal编程技术网

Linux nvidia GPU上的计算单元和预期核心混淆

Linux nvidia GPU上的计算单元和预期核心混淆,linux,opencl,gpgpu,nvidia,pyopencl,Linux,Opencl,Gpgpu,Nvidia,Pyopencl,我有一个,广告上说有640个CUDA内核。事实上,英伟达应用程序也报告了这个。 我正试图用这张卡在Linux上进行OpenCL开发。现在,我已经从OpenCL环境(如果有区别的话,通过PyOpenCL)报告了计算单元的数量是5。我的理解是,nvidia设备上的一个计算单元映射到一个多处理器,我理解为32个SIMD单元(我假设是CUDA核心) 显然,5*32不是640(而是预期的四分之一) 我是否遗漏了关于nvidia工作单元的含义?该卡还驱动图形输出,这将使用一些计算能力-是否保留一定比例的处理

我有一个,广告上说有640个CUDA内核。事实上,英伟达应用程序也报告了这个。

我正试图用这张卡在Linux上进行OpenCL开发。现在,我已经从OpenCL环境(如果有区别的话,通过PyOpenCL)报告了计算单元的数量是5。我的理解是,nvidia设备上的一个计算单元映射到一个多处理器,我理解为32个SIMD单元(我假设是CUDA核心)

显然,5*32不是640(而是预期的四分之一)

我是否遗漏了关于nvidia工作单元的含义?该卡还驱动图形输出,这将使用一些计算能力-是否保留一定比例的处理能力供图形使用?(如果是,我可以更改此选项吗?。

NVIDIA有一个,值得一读


用NVIDIA GPU术语,OpenCL计算单元转换为流式多处理器。GPU中的每个Maxwell SMM包含128个处理元素(“CUDA内核”)-和
128*5=640
。设备的SIMD宽度仍然是32,但每个计算单元(SMM)可以同时向四个不同的扭曲发出指令。

啊,非常有用!因此,我的理解是,采用这种体系结构的工作人员池周围有更好的资源共享——图中显示了四个多处理器共用的一级缓存等。这是否意味着较大的工作组映射到所有四个多处理器,或者多个工作组可以在同一SMM上并发运行(访问相同的资源)?很难看到如何用OpenCL编程,所以我想是前者。两者都是——而且这种情况已经存在很长时间了(即使在旧的费米SMs上,每个SM只有32个CUDA核)。在同一个SM上调度多个工作组是在其他工作项等待数据到达时使处理元素保持忙碌的关键技术。对,但是否可以对一对工作组进行编码,以便两者都可以访问相同的缓存?也就是说,工作组是紧密耦合的。不,这种资源共享需要在一个工作组内进行。@Henry
这是否意味着更大的工作组映射到所有四个多处理器上。我怀疑您的意思是“所有四个处理块”,在这种情况下是的,正如@jprice所指出的。如果你的意思是SM,那么不,工作组属于一个单一的SM,并且只在那个SM上生存。