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

Confusion over compute units and expected cores on nvidia GPU

我有一个 nvidia GTX 750 Ti card,它被宣传为具有 640 个 CUDA 内核。事实上,nvidia 设置应用程序也报告了这一点。

我正在尝试使用此卡在 Linux 上进行 OpenCL 开发。现在,我从 OpenCL 环境(如果有所不同,则通过 PyOpenCL)报告计算单元的数量为 5。我的理解是 nvidia 设备上的一个计算单元映射到一个多处理器,据我所知是 32 SIMD单位(我假设是 CUDA 核心)。

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

关于 nvidia 上工作单元的含义,我是否遗漏了什么?该卡还驱动图形输出,这将使用一些计算能力——是否有一部分处理能力保留给图形使用? (如果是这样,我可以更改吗?)。

NVIDIA 有一个 whitepaper for the NVIDIA GeForce GTX 750 Ti,值得一读。

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