0

我刚刚开始为我的一些模拟工作进行 GPU 编程,并且我一直在关注本教程:

http://www.drdobbs.com/parallel/cuda-supercomputing-for-the-masses-part/208401741

但是,我对术语感到困惑,访问 nVidia 的文档让我更加困惑。

这些术语:流式多处理器、线程、扭曲、块、网格、占用、着色器

有点压倒我。

这是我非常粗略的理解:

一个 GPU 被分成多处理器(可能像其中的 2 个)。每个多处理器被分割成warp,它们被分割成块,块被分割成线程。我不知道...我希望我有一个图表。有人可以帮我吗?

编辑:让我解释一下我为什么要问这个。假设我想弄清楚什么是“扭曲”。我谷歌“CUDA 扭曲”。首先出现的是http://developer.download.nvidia.com/CUDA/training/cuda_webinars_WarpsAndOccupancy.pdf。所以我向下滚动它说:

网格由完全独立的块组成

好的,我明白了。

块由可以在自己的块内通信的线程组成

好的...

32 根线形成一条经线

现在我迷路了。32根线组成一个经线?所有线程都必须在同一个块中吗?为什么我们任意将 32 个线程标记为“经线”?我可以将 12 个线程称为“挎包”吗?所以如果一个块可以容纳 20 个线程,这是否意味着我需要 2 个块来包含一个扭曲?你可以看到我的困惑来自哪里。我查找的所有内容都取决于对其他术语的了解,所以这有点像通过阅读字典来学习一门语言——这都是循环的。

4

1 回答 1

6

以 SO 单一问题/答案格式解释诸如 CUDA 或 GPU 架构之类的东西实际上并不可行。需要长时间讨论的问题经常被关闭。

你面临的挑战是可以理解的。有时,您需要对某个主题进行更有序的介绍,而不是仅通过谷歌搜索获得的内容。

NVIDIA 有各种可用资源:

仅举几例。让我建议您从参加介绍性和高级网络研讨会开始。如果你打算做大量的 GPU 编码,这将花费大约 2 个小时:

GPU Computing using CUDA C – An Introduction (2010) 介绍使用 CUDA C 进行 GPU 计算的基础知识。将通过代码示例的演练来说明概念。无需先前的 GPU 计算经验

GPU Computing using CUDA C – Advanced 1 (2010) 一级优化技术,例如全局内存优化和处理器利用率。将使用真实的代码示例来说明概念

这些都是 3 岁的事实对于您的问题并不重要。您当然欢迎浏览网络研讨会以获取更新版本 - 有很多。

于 2013-03-08T23:23:01.530 回答