【发布时间】:2011-02-01 19:00:23
【问题描述】:
亲爱的朋友们: 我想学习 CUDA 编程,我买了一辆 Nvidia GTS 450 PCI_E 汽车。它有 192 个 SM,那么它有多少个线程。 192个线程?还是 192*512 线程? 问候
【问题讨论】:
标签: cuda
亲爱的朋友们: 我想学习 CUDA 编程,我买了一辆 Nvidia GTS 450 PCI_E 汽车。它有 192 个 SM,那么它有多少个线程。 192个线程?还是 192*512 线程? 问候
【问题讨论】:
标签: cuda
在 CUDA 中,术语 threads 指的是特定内核调用的属性,而不是硬件的属性。
例如在这个 CUDA 调用中:
someFunction<<<2,32>>>(1,2,3);
您在 2 个块中有 32 个线程,因此总共有 64 个线程。
硬件自动将线程调度到处理器。
【讨论】:
根据the specs,您的设备有 192 个“处理器核心” - 这些与 SM不相同。在 CUDA 中,SM 是一种多处理器,它以锁步方式执行多个线程(1.3 系列设备为 8 个,后续设备更多)。
正如 shoosh 所指出的,使用的线程数是内核调用的函数。
通常,要在 CUDA 中获得良好的性能,您应该运行比 CUDA 处理器内核更多的线程 - 这是为了隐藏全局内存访问的延迟。
【讨论】: