这些东西都不是可以在 CUDA 中单独寻址的单独硬件。请阅读文档第 10 页上的这段文字:
GP100内的每个GPC有10个SM。每个 SM 有 64 个 CUDA 核心和 4 个纹理单元。拥有 60 个 SM,
GP100共有3840个单精度CUDA核心和240个纹理单元。每个内存控制器是
附有 512 KB 的 L2 缓存,每个 HBM2 DRAM 堆栈由一对内存控制
控制器。完整的 GPU 包含总共 4096 KB 的二级缓存。
如果我们在上面读到:
GP100 旨在成为世界上性能最高的并行计算处理器,以解决
我们的 Tesla P100 加速器平台满足 GPU 加速计算市场的需求。喜欢
与之前的 Tesla 级 GPU 相比,GP100 由一系列图形处理集群 (GPC)、纹理
处理集群 (TPC)、流式多处理器 (SM) 和内存控制器。完整的 GP100
由 6 个 GPC、60 个 Pascal SM 组成,30 个 TPC(每个包含 2 个 SM),和八个512位内存
控制器(总共 4096 位)。
看一下图表,我们看到以下内容:
因此,不仅 GP 和 SMS 不是独立的硬件,甚至连TPCs只是重组硬件架构并想出一个奇特的营销名称的另一种方式。您可以清楚地看到 TPC 没有在图中添加任何新内容,它只是看起来像 SM 的容器。其 [1 GPC]:[5 TPC]:[10 SM]
内存控制器是一些东西所有硬件为了与 RAM 连接,更多的内存控制器可以实现更高的带宽,请参见此图:
其中“高带宽内存”指的是HBM2 https://en.wikipedia.org/wiki/High_Bandwidth_Memory一种视频内存,例如 GDDR5,即视频 RAM。您不会像在 X86 台式机上那样直接在 CUDA 软件中解决这个问题。
所以实际上,我们这里只有 SM,没有 TPC 和 GPC。所以回答你的问题,因为张量流 https://github.com/tensorflow/tensorflow利用cuda https://github.com/tensorflow/tensorflow/tree/851c28951b7345f303f4ec1d6490e3fadaa0a40e/third_party/toolchains/gpus/cuda,大概它会使用所有可用的硬件。
编辑:发帖者将他们的问题编辑为一个完全不同的问题,并且有新的误解,所以这里是答案:
纹理处理集群 (TPC) 和纹理单元不是一回事。 TPC 似乎只是一个带有一些营销魔法的流式多处理器 (SM) 组织。
纹理单元不是一个具体的术语,不同 GPU 的功能也有所不同,但基本上您可以将它们视为纹理内存或随时访问纹理内存的组合,它采用空间一致性,而不是 L1、L2、L3...缓存采用时间一致性,结合一些固定功能。固定功能可能包括插值访问过滤器(通常至少是线性插值)、不同的坐标模式、mipmapping 控制和各向异性纹理过滤。请参阅Cuda 9.0 指南 https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#texture-and-surface-memory关于此主题,了解纹理单元功能以及可以使用 CUDA 控制的内容。在图表中我们可以看到底部的纹理单元。
显然,这些与我发布的第一张图片中显示的 TPC 完全不同,至少根据该图,TPC 没有与之相关的额外功能,而只是两个 SM 的容器。
现在,尽管事实上你can在 cuda 中解决纹理功能,您通常不需要这样做。纹理单元固定功能功能对于神经网络来说并不是那么有用,但是,空间相干纹理内存通常是自动地即使您没有明确尝试访问它,CUDA 也会将其用作优化。这样一来,TensorFlow仍然不会“浪费”硅。