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

标签 linux opencl gpgpu nvidia pyopencl

我有一个 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 核心”)- 和 128*5 = 640。设备的 SIMD 宽度仍然是 32,但每个计算单元 (SMM) 可以同时向四个不同的 warp 发出指令。

关于linux - 对 nvidia GPU 上的计算单元和预期核心的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31009499/

相关文章:

c++ - 操作系统原生 2D API 与 OpenGL

c - 在不同范围内的Cuda内核中生成随机数

android - 如何在 Android 上使用 OpenCL?

cuda - CURAND 库 - 编译错误 - 对函数的 undefined reference

linux - 在 bash 中搜索特定的文件系统

linux - 为什么 Makefile 检测到文件,即使它不存在?

linux - 如何在 Oracle Linux Server 6.8 上更改没有名称的时区?

c++ - OpenCL - 无法修改值

image-processing - OpenCL 中本地内存的优势是什么?

c - OpenCL 原子不执行任何操作