TensorFlow是否使用GPU上的所有硬件?

TensorFlow是否使用GPU上的所有硬件?,tensorflow,gpu,gpgpu,Tensorflow,Gpu,Gpgpu,具有30个TPC电路和240个“纹理单元”。是TensorFlow使用TPC和纹理单元,还是这些一次性硅块用于机器学习 我在一个正在运行的神经网络训练课程上查看GPU-Z和Windows10的内置GPU性能监视器,我发现各种硬件功能都没有得到充分利用。Tensorflow使用CUDA。我想CUDA可以访问所有硬件组件。例如,如果我知道差距在哪里(Tensorflow和底层CUDA之间),以及它是否是材料(浪费了多少硅),我可以通过复制Tensorflow、修改它,然后提交pull请求来补救 例如

具有30个TPC电路和240个“纹理单元”。是TensorFlow使用TPC和纹理单元,还是这些一次性硅块用于机器学习

我在一个正在运行的神经网络训练课程上查看GPU-Z和Windows10的内置GPU性能监视器,我发现各种硬件功能都没有得到充分利用。Tensorflow使用CUDA。我想CUDA可以访问所有硬件组件。例如,如果我知道差距在哪里(Tensorflow和底层CUDA之间),以及它是否是材料(浪费了多少硅),我可以通过复制Tensorflow、修改它,然后提交pull请求来补救

例如,下面的答案讨论了可从CUDA访问的纹理对象。NVidia指出,这些可以用于。如果我搜索“TextureObject tensorflow”,我不会得到任何点击。所以我可以假设,除非有相反的证据,TensorFlow并没有利用纹理对象


NVidia销售用于神经网络训练的GPGPU。到目前为止,他们似乎已经对他们的电路采取了双重用途的策略,所以他们离开的电路不是用于机器学习的。这就引出了纯张量流回路是否更有效的问题。对于TensorFlow而言,TPU是否比NVidia GPU更便宜,目前尚无定论

这些都不是可以在CUDA中单独处理的独立硬件。阅读文档第10页上的这段话:

GP100内的每个GPC都有十条短信。每个SM有64个CUDA内核和四个纹理单元使用60条短信息, GP100共有3840个单精度CUDA内核和240个纹理单元。每个内存控制器都是 连接到512 KB的二级缓存,每个HBM2 DRAM堆栈由一对内存控制 控制器。完整的GPU包含总计4096 KB的二级缓存

如果我们在上面读到:

GP100是世界上性能最高的并行计算处理器,用于解决 特斯拉P100加速器平台服务的GPU加速计算市场的需求。喜欢 以前的特斯拉级GPU,GP100由一系列图形处理集群(GPC)组成,纹理 处理集群(TPC)、流式多处理器(SMs)和内存控制器。满分100分 由六个GPC、60帕斯卡SMs、30个TPC(每个TPC包括两个SMs)和八个512位内存组成 控制器(总共4096位)

请看下图,我们可以看到以下内容:

因此,不仅GPC和SMS不是独立的硬件,甚至TPC也只是重新组织硬件架构并想出一个别致的营销名称的另一种方式。您可以清楚地看到TPC没有在图中添加任何新内容,它只是看起来像一个SMs容器。其[1 GPC]:[5 TPC]:[10短信]

内存控制器是所有硬件都要具备的,为了与RAM接口,更多的内存控制器可以实现更高的带宽,请参见下图:

其中,“高带宽存储器”指的是一种视频存储器,如GDDR5,换句话说,视频RAM。与X86台式机相比,使用CUDA在软件中无法直接解决这一问题

所以实际上,我们这里只有短信,没有TPC和GPC。因此,为了回答您的问题,既然利用了,大概它将使用所有可用的硬件

编辑:海报将他们的问题编辑成了一个完全不同的问题,并且有了新的误解,所以下面是答案:

纹理处理簇(TPC)和纹理单元不是一回事。TPC似乎只是一个流式多处理器(SM)的组织,并加入了一些营销魔法

纹理单元不是一个具体的术语,不同的GPU具有不同的功能,但基本上你可以将它们视为纹理内存或纹理内存的组合,它采用空间一致性,而不是L1、L2、L3。。。采用时间一致性,结合一些固定功能的缓存。固定功能可能包括插值访问过滤器(通常至少是线性插值)、不同坐标模式、mipmapping控制和ansiotropic纹理过滤。请参阅本主题中的,了解纹理单元功能以及使用CUDA可以控制的内容。在图表上,我们可以看到底部的纹理单元

显然,这些与我发布的第一张图片中显示的TPC完全不同,至少根据图表,TPC没有与之相关的额外功能,只是两条短信的容器


现在,尽管您可以在cuda中处理纹理功能,但通常不需要这样做。纹理单元固定函数功能对神经网络来说并不十分有用,但是,CUDA通常会自动使用空间相干纹理内存作为优化,即使您没有明确尝试访问它。这样,TensorFlow仍然不会“浪费”硅

是否存在更欢迎此问题的不同堆栈交换,例如AI或交叉验证?我选择StackOverlow是因为它有更多的TensorFlow和GPU问题。也许可以试试AI?不太确定。好吧,但我冒着其他一些投反对票的人的风险,这样我就很难交叉发帖了。我可以问它一个不同的方式,那就是问CUDA的哪些部分击中英伟达GPGPU硬件的哪些部分。你最近编辑的最后一段是什么意思?Nvidia销售的GPU不仅仅是神经网络,还包括科学计算、光线跟踪、医学成像和自动驾驶车辆。。。如果可以的话,Nvidia会将其GPU作为癌症的治疗手段进行营销(我收到了他们的电子邮件)