正文
对传统板级冷却技术进行了重大改进,例如VITA 48.2传导冷却设计指南。例如,最近的一个COTS产品在传导冷却的6U VPX载体上放置了两个NVIDIA Tesla M6 MXM,每个75瓦特。这可能代表传导冷却的上限。但是除了结合具有更高TDP数量的GPGPU之外,诸如VITA 48.5空气流通和液体冷却技术之类的冷却技术将允许VPX中更高的散热上限。
鉴于GPGPUs最初是为图像而设计,它们被降级至数据流应用中。换句话说,没有办法拥有共享或静态数据,每个GPGPU核只能“进入数据流”:从入口读取数据,实时执行一些功能,并写入出口。
目前,GPGPU正在构建多级缓存和分支功能。然而,清晰的GPGPU性能强度仍然在于处理高度并行的大量数据集,并且在数据元素之间具有最小的依赖关系。因此,分支应保持在内环之外。
7. GPU不能处理递归、不规则循环结构或决策分支?
通过动态并行性,GPU内核启动其他内核,有选择性地完成内核同步,执行设备内存管理,以及创建和使用数据流和事件。启动内核是“父核”,它启动的新网格是“子核”。子内核可以自己启动工作,创建一个“嵌套”执行层次结构。所有子核启动必须在父核完成之前完成。这种先进性实现了分层算法的写入,其中,来自上一代的数据用于计算下一个较低级别的工作分区。
GPU具有标准分支指令,例如“if”,“if-else”和“for”。一个warp是一组32个线程,warp必须一次执行一条指令。因此,当给定warp中的所有线程采用相同的执行路径时,才能实现最佳效率。
最初,CPU执行了一系列内核启动,每个内核需要足够的并行性以有效地抵消调用和内存传递开销。现在,需要从父CUDA内核中调用子内核。父核可以使用从子核生成的输出,并有选择性地与它同步,所有这些都不需要CPU参与。这很容易采用,因为GPU内核启动使用与CPU相同的语法。
CPU受控程序受到单一控制点的限制,该控制点只能在给定时间运行有限数量的线程。通过控制GPU上的内核来消耗CPU。通过将顶层循环传输到CPU,可以运行数千个独立任务,从而释放CPU以进行其他工作。
9. 内存必须由CPU创建,然后传递给GPU以移动数据并接收结果?
统一虚拟内存(UVM)为CPU和GPU内存提供单一地址空间,从而消除了系统内存和复制开销。这个统一的内存空间也可以由多GPGPU共享。通过允许用户从单个指针变量确定物理内存位置,库可以简化其接口。在UVM之前,每种类型的内存副本都需要单独的命令;CPU到GPU,CPU到GPU等等。现在一个函数调用可以处理所有情况,用户被释放以指定源和目标存储空间。使用UVM实现真正的零拷贝内存。
10. GPU需要一个CPU来处理数据,并在GPU之间传递数据?
使用GPUDirect、多个GPU、第三方网络适配器、固态驱动器(SSD)和其他设备可以直接在GPU之间读取和写入。GPUDirect对等体可在同一PCIe或NVLink总线上的两个GPU的存储器之间实现高速DMA传输。GPU内核可将数据缓存在目标GPU中,直接访问(加载/存储)到其他GPU的内存中。
GPUDirect RDMA是InfiniBand CORE和GPU之间的应用程序编程接口(API)。它可以访问Mellanox主机通道适配器(HCA)来读取/写入GPU的内存缓冲区,从而使GPU能够直接从RDMA互连中获取数据,而无需首先将数据复制到CPU内存。