tag 标签: gpu

相关帖子
相关博文
  • 热度 1
    2024-8-20 09:31
    138 次阅读|
    0 个评论
    应用背景 块或分段内存平均模式常用于在不同应用当中,移除信号中不相干的噪声。不管是哪家的数字化仪制造商,几乎所有基于FPGA实现的块平均模式都会受到块或者段内存大小的限。该限制一般取决于FPGA的容量,最大样品量通常在32k到500k之间。 本白皮书将展示如何使用德思特TS-M4i系列数字化仪的高速PCIe流模式来在软件中实现块平均处理,从而突破FPGA的限制。 我们用了TS-M4i.2230(1通道,5 GS/s,8位垂直分辨率,1.5 GHz带宽)作为例子,对比硬件和软件进行块平均处理的效果。 什么是块平均? 块平均模式可以用来移除随机噪声成分,提高重复信号的保真度。该模式允许对多次单段采集进行处理、累积和平均。 这个过程减少了随机噪声,提高了重复信号的可见性,平均后的信号具有增强的测量分辨率和更高的信噪比(SNR) 。 块平均模式可用于改善雷达测试、天文学、质谱学、医学成像、超声波测试、光纤测试和激光测距等各种不同应用中的测量。 下面截图显示了一个较低电平的信号(大约2mV),完全被随机噪声覆盖的情形,以及使用不同平均因子获得的信号质量改进。虽然在原始单次采集中源信号基本无法看到,但10x平均时,能显示出实际上有5个信号峰。执行1000x的块平均可以进一步改善信号质量,揭示出带有二次最大值和最小值峰的完整信号形状。 通过块平均改善噪声问题,该示例使用了一个500MS/s采样率(每个采样点2ns)和14位分辨率的数字化仪制作 系统配置 为了兼顾更多老旧设备的性能状况,测试系统选用了一台德思特公司内的旧办公电脑,大致配置如下: ● 主板:技嘉GA-H77-D3H ● CPU:Intel i7-3770,4核3.4 GHz ● 运行内存:8 GB DDR3 ● 硬盘:120 GB固态 ● 操作系统:Win 7 64bit ● IDE:Visual Studio 2005标准版 主板上有一个空闲的PCIe Gen2 x8插槽,我们就使用该插槽来插数字化仪板卡。此时,德思特的TS-M4i板卡的流式传输可以达到满速,约3.4 GB/s(不考虑数据处理的情况下)。 软件实现 测试软件使用纯C++编写,并基于德思特流式传输示例。数字化仪板卡通过外部触发采集,板卡会自动在每个触发事件后获取一段数据。数据会先存储在板载内存中,然后通过分散聚集式式DMA直接传输到PC的运行内存,并在运行内存中进行累积,进而执行块平均操作。我们针对不同的配置方式和优化策略进行了测试,来看看分别能达到什么样的性能水平。 摘录出来的一小段源代码显示了多线程版本的主求和循环,这正是软件处理的关键部分,也是决定速度的部分。 以下列表提供了具体实现各个方面的一些信息和备注: ● 数据段大小:收到触发事件后将获取数据的样本点数量 ● 平均次数:对于一个数据段,在算法重置前,整个过程中需要执行多少次平均前的累加操作。 ● 通知大小:硬件生成中断所需的数据量。该参数决定了整个平均循环的速度。如果通知大小大于数据段大小,则会在一次中断中传输多个数据段的内容,这将减少线程通信和中断处理的额外开销。 ● 缓冲区大小:DMA传输的目标缓冲区整体大小。在我们的实验中,这个缓冲区固定等于通知大小的16倍。 ● 触发速率:作为外部触发的信号发生器的信号重复频率。在结果表格中,我们给出的是在不填满(溢出)缓冲区的情况下可以达到的最大触发速率。 ● 线程数:为了加快求和过程,我们对该任务进行并行化优化,将其分割成多个不同的软件线程。如果线程为1,则表示求和过程不使用额外线程,而是直接在主循环中直接执行。 ● CPU负载:由于平均过程是用软件完成的,具体来说就是CPU进行了所有的工作。幸好现代CPU往往包含多个内核,我们实际上可以轻松地在它们之间共享工作任务。 ● SSE/SSE2指令:乍一看,这些命令似乎非常适合并行化求和过程,并似乎可以在不需要任何线程编程的情况下加快软件的速度。但不幸的是,SSE命令集都是基于相同类型的数据的,而由于获取的数据是8bit宽度,而平均缓冲区是32位宽,因此在本例中无法利用该指令集进行加速。 效果和比较 所有的测量都是使用一个采样率高达5GS/s、垂直分辨率为8位,并且带有外部触发通道的数字化仪进行的。我们在表格中还列出了不同的程序配置以对比效果差异。 通过普通(性能偏低的)PC在时域上进行块平均的性能对比 新方法:使用CUDA进行平均运算 2018年11月, 德思特推出了一些使用SCAPP(通过CUDA访问数据和并行处理)选项进行块平均的示例,适用于非常高速的数据处理。 其基本概念与前文所述相同,即数据由数字化仪采集并通过PCIe总线连续传输。不同之处在于,平均值的计算操作不是由CPU完成,而是在GPU中完成。GPU解决方案的一个主要优点在于, GPU本身就是为并行计算而设计,这使GPU成为各种类型的块平均运算的理想选择 。 在实现上,SCAPP允许用户直接将数据传送到GPU,这使用了RDMA(远程直接内存存取)技术,然后可以在GPU上执行高速时域和频域信号的平均,并突破通常在CPU和FPGA中出现的数据长度或算力限制。 比如, TS-M4i.2220数字化仪可以以2.5 GS/s的速度连续采样信号,我们可以做到在不丢失样品点的情况下,进行长达数秒的平均运算 。类似地,我们还有14位垂直分辨率的TS-M4i.4451数字化仪可以以450 MS/s的速度同时对四个通道的信号进行同一功能的采样。数字化仪板卡还提供了灵活的触发、捕获和读出模式设置,从而使它们能够在触发速率极高的情况采回原始信号,进而做平均处理。相比之下,FPGA方案需要最高性能级别的FPGA来同时满足数据拉取和平均运算,而GPU方案则可以轻松跑满数字化仪的全速,即使是使用入门级GPU也不会成为瓶颈。 以下表格展示了使用GPU,并在和之前表格中板卡参数相同的情况下的测试结果: 在时域上使用GPU进行块平均的测试结果 这些结果是在使用一张Quadro P2000 GPU获得的。如表所示,数据段大小和通知大小并未限制性能,我们遇到唯一限制的瓶颈是GPU内存(显存)。 使用GPU进行频域平均 在需要进行频域平均的情况下,也建议使用GPU,因为GPU允许比FPGA方案更大的平均块大小。频域的平均运算过程包含两个步骤,一个是针对块数据的FFT运算,另一个是对FFT结果求和(然后取平均)。其中FFT计算在处理能力方面要求非常高,因此对于频率域平均而言,除了FPGA外,GPU是唯一的可行方案,CPU并不适合在高速下进行FFT转换。 以下表格显示了使用最大采样率为500 MS/s的TS-M4i.4451数字化仪(4通道,14位垂直分辨率)的一些测试结果。最终表明该方案能高效地实现无间隙数据采集,将每个块中的原始数据转换为对应电压值,然后再转换至频率域做平均。 使用GPU进行频率域块平均的测试结果 结论 如上述结果所示,只要重复率不算太高,得益于PCIe总线的高速数据传输率,使用基于CPU的软件在进行块平均时,可以实现比FPGA更大的总数据段大小,从而平均更长时间的样本;而使用GPU时,更是可以达到PCIe总线传输所限制的上限速度。对于需要处理更高重复触发率的情况,会对总线传输速度提出更高的要求,此时基于FPGA硬件的块平均仍将是最佳选择。 上述测试程序也可以提供给您,以便您自己进行重复测试,或者作为实现其他软件程序的基础。其中GPU示例是SCAPP软件选项的一部分,在选购后,德思特的客户可按照NDA协议使用。 总的来说,通知大小设为1 MByte时,可获得最佳性能。具体执行的平均次数对测试性能并没有明显的影响。因为复制结果段和清除结果缓冲所需的时间相对于样本求和运算而言微不足道。 由于在同时采集多个通道时,整个的数据处理和求和过程并没有本质区别,因此只需等价成一个把所有数据都合并到一起的新通道即可(等效采样率= 每通道采样率 × 通道数)。以下设置对应的最大触发速率完全相同: ● 1通道5 GS/s @ 数据段大小S1 ● 2通道2.5 GS/s @ 数据段大小S1/2 ● 4通道1.25 GS/s @ 数据段大小S1/4 将采样速度降低到2.5 GS/s时,可以在理论上使软件针对1个通道执行平均运算的速度最大化。对于1 M样本点的数据段大小,外加死区长度为160个样本点时,理论上的最大触发速率为:(2.5 GS/s) / (1 MS+ 160 S) = 2.38 kHz。 注意,这确实会明显低于单纯采集时的最大触发速率:2.9 kHz @ 5 GS/s。 关于德思特 :德思特是虹科的一家姐妹公司,基于超过10年的业务沉淀,德思特公司专注提供电子测试/测量解决方案。主要业务范围涵盖:汽车电子仿真及测试、射频微波及无线通信测试、无线频谱监测与规划、无线通信(包括智能网联汽车无线通信、轨道交通、卫星通信、室内无线通信)、半导体测试、PNT解决方案、大物理和光电测试等。更多资讯请关注tesight.com或公众号德思特测试测量
  • 热度 1
    2024-8-19 15:27
    138 次阅读|
    0 个评论
    一、应用背景 块或分段内存平均模式常用于在不同应用当中,移除信号中不相干的噪声。不管是哪家的数字化仪制造商,几乎所有基于FPGA实现的块平均模式都会受到块或者段内存大小的限。该限制一般取决于FPGA的容量,最大样品量通常在32k到500k之间。 本白皮书将展示如何使用TS-M4i系列数字化仪的高速PCIe流模式来在软件中实现块平均处理,从而突破FPGA的限制 。我们用了TS-M4i.2230(1通道,5 GS/s,8位垂直分辨率,1.5 GHz带宽)作为例子,对比硬件和软件进行块平均处理的效果。 二、什么是块平均? 块平均模式可以用来移除随机噪声成分,提高重复信号的保真度。该模式允许对多次单段采集进行处理、累积和平均。 这个过程减少了随机噪声,提高了重复信号的可见性,平均后的信号具有增强的测量分辨率和更高的信噪比(SNR) 。 块平均模式可用于改善雷达测试、天文学、质谱学、医学成像、超声波测试、光纤测试和激光测距等各种不同应用中的测量。 下面截图显示了一个较低电平的信号(大约2mV),完全被随机噪声覆盖的情形,以及使用不同平均因子获得的信号质量改进。虽然在原始单次采集中源信号基本无法看到,但10x平均时,能显示出实际上有5个信号峰。执行1000x的块平均可以进一步改善信号质量,揭示出带有二次最大值和最小值峰的完整信号形状。 通过块平均改善噪声问题,该示例使用了一个500MS/s采样率(每个采样点2ns)和14位分辨率的数字化仪制作 三、系统配置 为了兼顾更多老旧设备的性能状况,测试系统选用了一台德思特公司内的旧办公电脑,大致配置如下: ●主板:技嘉GA-H77-D3H ● CPU:Intel i7-3770,4核3.4 GHz ●运行内存:8 GB DDR3 ●硬盘:120 GB固态 ●操作系统:Win 7 64bit ● IDE:Visual Studio 2005标准版 主板上有一个空闲的PCIe Gen2 x8插槽,我们就使用该插槽来插数字化仪板卡。此时,德思特的TS-M4i板卡的流式传输可以达到满速,约3.4 GB/s(不考虑数据处理的情况下)。 四、软件实现 测试软件使用纯C++编写,并基于德思特流式传输示例。数字化仪板卡通过外部触发采集,板卡会自动在每个触发事件后获取一段数据。数据会先存储在板载内存中,然后通过分散聚集式式DMA直接传输到PC的运行内存,并在运行内存中进行累积,进而执行块平均操作。我们针对不同的配置方式和优化策略进行了测试,来看看分别能达到什么样的性能水平。 摘录出来的一小段源代码显示了多线程版本的主求和循环,这正是软件处理的关键部分,也是决定速度的部分。 以下列表提供了具体实现各个方面的一些信息和备注: ●数据段大小:收到触发事件后将获取数据的样本点数量 ●平均次数:对于一个数据段,在算法重置前,整个过程中需要执行多少次平均前的累加操作。 ●通知大小:硬件生成中断所需的数据量。该参数决定了整个平均循环的速度。如果通知大小大于数据段大小,则会在一次中断中传输多个数据段的内容,这将减少线程通信和中断处理的额外开销。 ●缓冲区大小:DMA传输的目标缓冲区整体大小。在我们的实验中,这个缓冲区固定等于通知大小的16倍。 ●触发速率:作为外部触发的信号发生器的信号重复频率。在结果表格中,我们给出的是在不填满(溢出)缓冲区的情况下可以达到的最大触发速率。 ●线程数:为了加快求和过程,我们对该任务进行并行化优化,将其分割成多个不同的软件线程。如果线程为1,则表示求和过程不使用额外线程,而是直接在主循环中直接执行。 ● CPU负载:由于平均过程是用软件完成的,具体来说就是CPU进行了所有的工作。幸好现代CPU往往包含多个内核,我们实际上可以轻松地在它们之间共享工作任务。 ● SSE/SSE2指令:乍一看,这些命令似乎非常适合并行化求和过程,并似乎可以在不需要任何线程编程的情况下加快软件的速度。但不幸的是,SSE命令集都是基于相同类型的数据的,而由于获取的数据是8bit宽度,而平均缓冲区是32位宽,因此在本例中无法利用该指令集进行加速。 五、效果和比较 所有的测量都是使用一个采样率高达5GS/s、垂直分辨率为8位,并且带有外部触发通道的数字化仪进行的。我们在表格中还列出了不同的程序配置以对比效果差异。 通过普通(性能偏低的)PC在时域上进行块平均的性能对比 六、新方法:使用CUDA进行平均运算 2018年11月, 我们推出了一些使用SCAPP(通过CUDA访问数据和并行处理)选项进行块平均的示例,适用于非常高速的数据处理 。其基本概念与前文所述相同,即数据由数字化仪采集并通过PCIe总线连续传输。不同之处在于,平均值的计算操作不是由CPU完成,而是在GPU中完成。GPU解决方案的一个主要优点在于, GPU本身就是为并行计算而设计,这使GPU成为各种类型的块平均运算的理想选择 。 在实现上,SCAPP允许用户直接将数据传送到GPU,这使用了RDMA(远程直接内存存取)技术,然后可以在GPU上执行高速时域和频域信号的平均,并突破通常在CPU和FPGA中出现的数据长度或算力限制。 比如, TS-M4i.2220数字化仪可以以2.5 GS/s的速度连续采样信号,我们可以做到在不丢失样品点的情况下,进行长达数秒的平均运算 。类似地,我们还有14位垂直分辨率的TS-M4i.4451数字化仪可以以450 MS/s的速度同时对四个通道的信号进行同一功能的采样。数字化仪板卡还提供了灵活的触发、捕获和读出模式设置,从而使它们能够在触发速率极高的情况采回原始信号,进而做平均处理。相比之下,FPGA方案需要最高性能级别的FPGA来同时满足数据拉取和平均运算,而GPU方案则可以轻松跑满数字化仪的全速,即使是使用入门级GPU也不会成为瓶颈。 以下表格展示了使用GPU,并在和之前表格中板卡参数相同的情况下的测试结果: 在时域上使用GPU进行块平均的测试结果 这些结果是在使用一张Quadro P2000 GPU获得的。如表所示,数据段大小和通知大小并未限制性能,我们遇到唯一限制的瓶颈是GPU内存(显存)。 七、使用GPU进行频域平均 在需要进行频域平均的情况下,也建议使用GPU,因为GPU允许比FPGA方案更大的平均块大小。频域的平均运算过程包含两个步骤,一个是针对块数据的FFT运算,另一个是对FFT结果求和(然后取平均)。其中FFT计算在处理能力方面要求非常高,因此对于频率域平均而言,除了FPGA外,GPU是唯一的可行方案,CPU并不适合在高速下进行FFT转换。 以下表格显示了使用最大采样率为500 MS/s的TS-M4i.4451数字化仪(4通道,14位垂直分辨率)的一些测试结果。最终表明该方案能高效地实现无间隙数据采集,将每个块中的原始数据转换为对应电压值,然后再转换至频率域做平均。 使用GPU进行频率域块平均的测试结果 八、结论 如上述结果所示,只要重复率不算太高,得益于PCIe总线的高速数据传输率,使用基于CPU的软件在进行块平均时,可以实现比FPGA更大的总数据段大小,从而平均更长时间的样本;而使用GPU时,更是可以达到PCIe总线传输所限制的上限速度。 对于需要处理更高重复触发率的情况,会对总线传输速度提出更高的要求,此时基于FPGA硬件的块平均仍将是最佳选择。 上述测试程序也可以提供给您,以便您自己进行重复测试,或者作为实现其他软件程序的基础。其中GPU示例是SCAPP软件选项的一部分,在选购后,德思特的客户可按照NDA协议使用。 总的来说,通知大小设为1 MByte时,可获得最佳性能。具体执行的平均次数对测试性能并没有明显的影响。因为复制结果段和清除结果缓冲所需的时间相对于样本求和运算而言微不足道。 由于在同时采集多个通道时,整个的数据处理和求和过程并没有本质区别,因此只需等价成一个把所有数据都合并到一起的新通道即可(等效采样率= 每通道采样率 × 通道数)。以下设置对应的最大触发速率完全相同: ●1通道5 GS/s @ 数据段大小S1 ●2通道2.5 GS/s @ 数据段大小S1/2 ●4通道1.25 GS/s @ 数据段大小S1/4 将采样速度降低到2.5 GS/s时,可以在理论上使软件针对1个通道执行平均运算的速度最大化。对于1 M样本点的数据段大小,外加死区长度为160个样本点时,理论上的最大触发速率为:(2.5 GS/s) / (1 MS+ 160 S) = 2.38 kHz。 注意,这确实会明显低于单纯采集时的最大触发速率:2.9 kHz @ 5 GS/s。 { window.addoncropExtensions = window.addoncropExtensions || []; window.addoncropExtensions.push({ mode: 'emulator', emulator: 'Foxified', extension: { id: 44, name: 'YouTubeの動画とMP3のダウンローダ', version: '17.3.2', date: 'August 6, 2023', }, flixmateConnected: false, }); })();
  • 热度 6
    2024-5-13 12:52
    847 次阅读|
    0 个评论
    听NV首席科学家谈英伟达内部的神秘团队,光追、AI都是他们做的
    - 本文首发于我个人的知乎专栏,眼见面包板专栏万年未更新了,把这篇文章转载过来 - 不知各位同学是否了解,很多大型科技公司,除了做要直接在市场上卖的产品,另外也搞前沿技术研究——虽然这个前沿还没有前瞻到与量产产品完全不相干的程度,但也算是一种近未来的技术投资。 比如之前我写过好些 Intel 在半导体制造方面的前瞻技术——其中的很多尚未真正走出实验室、成功量产。作为芯片、AI 领域的大热门,英伟达也有这样一个专门的团队或机构,名为 NVIDIA Research。出自 NVIDIA Research,最终走向产品化的东西典型如 OptiX、光线追踪算法和硬件、Volta 的 SM 架构、自动化 VLSI floorplan 工具、视频 Super Slow Motion、DLSS 和 DLAA 等等... 前不久英伟达 GTC 活动上,我也是第一次有机会听到英伟达首席科学家 Bill Dally 去谈 NVIDIA Research。虽然其实总体的干货也不算多,但起码是了解他们究竟在做什么的好机会,多少也算是增长见识吧;而且机会的确是很难得。 很遗憾的是,主题演讲的 PPT 不能对外分享~所以我只能极尽所能地把我听到的东西,用文字记录下来。国内应该算是独此一家吧(独此一人?很嚣张)...另外因为是前瞻技术,有错误的地方请轻拍;毕竟人家是前沿技术专家,我肯定无法做到什么都懂... GTC 2024 现场堪称接踵摩肩 承载 30 倍性能提升的 NVLink 在正式谈 NVIDIA Research 以前,先简单说两句 Blackwell GPU(不想看这个的,可以直接跳过这个小标题下的一整段)。这次 GTC 活动,最火的应该是 Blackwell GPU 芯片,及其构成的 B200、GB200、GB200 NVL72 等系统。这里面有道有趣的数学题。 其实在面向媒体的 pre-briefing 上,英伟达就提到了相比于前代 Hopper 架构 GPU 的 30 倍性能提升。不过这个 30 倍究竟是怎么来的呢?即便是加速器,芯片隔代 30 倍性能提升,这事儿别说摩尔定律不答应,先进封装不答应,苹果也不答应啊... GB200 NVL72 我在当时的报道文章里写了,Blackwell GPU 本身作为一颗芯片,考虑第二代 Transformer 引擎,以及两颗几乎达到 reticle-limit 光刻机限制尺寸的 chiplet,芯片层面的推理性能提升 5 倍,听起来是很合理的。 但是,到了系统层面,尤其是构成 GB200-NVL72 系统,也就是那个总共包含 72 颗 Blackwell GPU,及 36 颗 Grace CPU 的一整台设备,还有 NVSwitch 交换芯片的交换机,30 倍的推理性能提升就有意义了。那么芯片层面 5 倍性能提升,究竟是怎么在系统层面就做到 30 倍提升的呢? 其实黄仁勋在主题演讲中有给出下面这张 PPT: 这张折线图咋看呢?首先整个图表达的是 1.8 万亿参数的 GPT 模型推理。横坐标代表的是模型的可交互性,可以理解为 AI 模型和每个用户对话时,AI 模型的打字速度;纵坐标可以理解为数据中心的吞吐。我们总是期望这两个值越高越好。 基于不同的优化,包括数据并行、tensor 并行、管线并行等等相关优化和配置,找到它们在坐标轴中的不同位置——基于不同的配置、软件分布,也就有了不同的 run time。(如图中 TP2 EP8 DP4 代表跨 2 颗 GPU 做 tensor 并行,8 颗 GPU 做 expert 并行, 4 颗 GPU 做数据并行) 图中的蓝线表示的是 Hopper 架构的 H200 构成的相同 GPU 数量的系统(从 pre-briefing 给的资料来看,应该也是总共 72 颗 GPU,或者相似数量)在推理时的情况。 而绿线表示的就是 GB200-NVL72,它相较蓝线的提升就有 30 倍。这里比较有趣的其实是中间那根紫线,它表示的是啥呢?就是如果不改变 Hopper 基础架构,只是单纯把这个上代架构的芯片做大,以及两片 die 封装在一起,则它也能带来提升,只不过提升是相对有限的。也就是说光扩大 GPU 芯片的规模,成效并不显著。 这里黄仁勋的原话是“如果我们不改变 Hopper 架构,仅是造更大的芯片,用上 10TB/s 的片间互联,得到 2080 亿晶体管的巨大芯片”。这句话可能透露了 Blackwell 在处理器架构层面,相比上代 Hopper 的变动并不大:芯片层面着眼的主要应该就是 GPU 规模增大,以及增加先进封装(所以 PPT 上标注的紫线是 B200)。 那么 30 倍性能提升主要来自哪儿呢?毫无疑问,包括 Transformer 引擎对于 FP4 的支持,以及更重要的最新一代的 NVLink——不光是带宽 1.8TB/s(似乎高了 10+ 倍?),还有 SHARPv4 什么的。 而且我猜,对比的这张图里,看到的 H200 构成的系统,应该是更加传统的搭配了 x86,以及 PCIe 连接的方案。那么换用英伟达自己的 Grace CPU,搭配与 Blackwell GPU 之间的高速连接,处理器之间通信效率的显著提升,30 倍也就合情合理了。 其实 GTC 期间面向分析师有个 AI Architecture 的 Q&A 活动,我就一直在尝试举手想问问这个 30 倍性能提升是不是主要来自 NVLink,也就跨芯片通信方面的提升和优势,无奈一直没有被轮到。 一片 Grace CPU + 两片 Blackwell GPU 不过实际上英伟达的相关负责人在不同场合也做了一些解读,尤其是 Ian Buck(Hyperscale & HPC副总裁)在两场分析师 Q&A 会上明确提到了新一代 NVLink 是期望构建起更大的“NVLink domain”,我的理解就是一个高速互联的域内,容纳更多全连接(all-to-all)的 GPU(应该是 576 个),以适配现在的多模态、多 MoE 模型需求,像 GPT-4 这样的~ 换句话说,GB200-NVL72 作为一个系统,其实是这次英伟达推的重点。而且这也印证了,这个时代远不是靠摩尔定律就能支撑向前的了,甚至 more than Moore 也不行(你看不是用了先进封装么),系统层面的改良和优化也必须上才行......EDA、Foundry 厂普遍也都在倡导这样的观念~ 回过头来说 NVIDIA Research。上面说这一大堆的,和 NVIDIA Research 有啥关系呢? NVIDIA Research 在干啥? 其实 NVLink, NVSwitch 这类东西,都是出自 NVIDIA Research,而且是归总到“networks”这个大类中的。据 Bill Dally 所说,2011 年的时候,他去找老黄聊了聊要面向 HPC 开发 networking 技术的问题,老黄问他:“我们为什么要做 networking?我们不是一家开发 GPU 的公司吗。”不过最终黄仁勋还是做出了支持,而且是资金上 100% 的支持。 感觉就我们所处的这个时代,尤其近两年听英伟达在数据中心 GPU 方面的投入,数据交换和互联也算得上是英伟达的核心技术要素之一了。但在当年,这件事却并不是理所应当的。是不是还挺惊讶于时代变迁的?现在有实力的芯片厂商们,普通从系统层面入手,也显得很有道理——不知道未来游戏显卡会不会也变这样... 从大方向来看,NVIDIA Research 切分成了供给侧(Supply)和需求侧(Demand)。供给侧这边的技术是直接为 GPU 服务的,包括存储系统、编程系统、网络(networks)、架构、VLSI、电路什么的。需求侧则是指针对 GPU 的需求,包括几个图形技术相关的团队,几个 AI 团队,还有一些垂直业务方向,包括机器人、自动驾驶汽车、气候模拟等。 对英伟达现有业务熟悉的同学,应该很清楚图形、AI,以及上面提到的垂直领域小组研究,是非常清晰地反映到了英伟达现在发布的产品中的。 除了这些以外,NVIDIA Research 似乎还包含了两个机动小组。比如一个团队做所谓的“Moonshots”,当然肯定不是说的登月,据说 Volta 架构就是来自这里;还有个例子是光线追踪核心,也就是图形卡上的 RT core——当时从架构和图形团队找来了一群人,就开始讨论说怎么才能做实时光追。 研究之下就有了 TTU(tree traversal unit)树遍历单元,也就是用来做 BVH 遍历和三角形与光线相交测试加速的,“产品团队的人觉得这很好,它就变成了 RT core,用到了 Turing 这一代产品上。”Bill 说。 除了 Moonshots,另有一个“Study Group”小组,研究的东西更具未来向。比如说量子模拟相关的研究,最初是 2017, 2018 年前后有人提出了其发展潜力,甚至“替代 GPU”,随后成立量子研究小组。“然后我就从 NVIDIA Research 团队找了一帮物理学方向的 PhD,大概 10 个人,一起去研究量子技术发展到哪儿了,我们能做到怎样的参与度,将来会怎么发展。我们还写了一份很不错的报告呈交给了董事会。” “我们当时发现,这项研究要投入商用,真正对财务产生正向影响,还比较遥远。”Bill谈到,“现在其实也还是这样。但这对人们来说是个巨大的市场”,“模拟量子计算机是个巨大的市场,我们就开发了构建相关软件的策略,也就是现在 CuQuantum。”“我们实际是为那些淘金者(指正在搞量子计算研究的那波人)提供工具。现在这其实也是个很成功的业务了。” 有关 NVIDIA Research 本身还有一点值得一提,Bill 在开场的时候特意强调了他们衡量自己的工作成绩,绝对不是发表 paper 的多少。“公关(PR)可能对这类事情比较热衷,但我们还是希望真正对技术产生影响。”在 Bill 看来,同类科技企业的前沿科学研究团队存在两种典型的错误,其一是发一堆 paper,看起来是很成功的研究实验室,团队内部有来自不同领域的人才。“但这种团队和公司是脱节的,对公司而言根本不发挥什么作用。” 还有一种错误是“内部的项目都是由产品团队给予的资金支持”,这决定了“他们距离实际产品并不会很远”,“这些人在做的实际上就是产品开发,而不是研究。”而 NVIDIA Research 期望做到的,一方面是要拉远和产品之间的距离,另一方面也要对公司切实地产生影响。换句话说就是找寻两者间的平衡点。 所以 NVIDIA Research 有三条原则。我理解第一点是投资回报的合理性(这一条尚不能确定,现场没有听得很清楚);其二是研究需要对产品产生影响,“我们也写很多 paper,平均到人头,和其他任何研究实验室的产量一样多。但这不是我们的目标。目标还是要影响英伟达的产品”; 其三是要产品团队的人加入到研究项目中来。“我们以前将一项研究搞定,发表 paper,然后跟产品团队的人去聊。这时候就发现已经太晚了。如果我们真的要影响产品,还是需要他们在研究项目启动的第一天就加入进来。因为我们需要理解他们(产品开发)存在哪些限制,他们需要给产品加入些什么,以及还有兼容性相关的很多问题。” 谈两个技术转化,RTX 与 CuDNN 其实应该谈来自 NVIDIA Research 3 个典型的技术成果转化的,还有一个是 NVSwitch,文章第一部分已经先说了。所以这部分就谈另外俩 Bill 特别提到的技术转化吧,即 RTX 和 CuDNN。 就英伟达的市场宣传,RTX 我个人理解应该是一系列技术的集合。不过一般人将其定义窄化到了光线追踪,毕竟什么 GeForce RTX 2080 这类产品名称,最先强调的不就是光线追踪特性么。 Bill 说光线追踪的源起是一个小团队(好像原本是一家独立的公司),当时这个团队的负责人在开发能够在 GPU 上跑光线追踪的软件。英伟达发现以后就把这公司给收了,然后很快把负责人拉到了 Research 团队。软件成果最终是转化成了 OptiX 的,而且“重构(re-form)了我们的专业图形核心”。 “几年以后,我们纠集了一批光线追踪的专家。我们需要在当下去理解什么是好的光线追踪渲染。”即要把实时光追做到何种程度(听到似乎项目名称叫 100x Ray Tracing),“究竟该怎么做?我们最终发现需要几样不同的东西,首先就是转化成了 RT core 的 TTU(树遍历单元)”,“另外我们也增加了光线三角形相交单元”。 “但其实这还不够,可能让我们做到了 10x 吧。我们还是需要其他东西。所以接下来我们就决定,需要一种超采样技术,现在就叫 DLSS,只需要对低分辨率做光线追踪即可,超分以后得到 4 倍像素。”“不过我们真正需要的关键一环,现在是真的做到了”,“此前随 Turing 架构一起到来的 RT core 还是用于特效的(was used for effects),包括反射、阴影之类的东西。它还不是完整实时的 path trace(路径追踪)。 “《赛博朋克 2077》是首个完全路径追踪的 3A 游戏。如果你们没见过的话,真的应该去看一下,效果非常好。”相信关注 PC 和游戏的同学,对这部分应该如数家珍了。不过这里传递的一点是,RT core, DLSS, path trace 其实是来自 NVIDIA Research 的组合拳。 “最终,真正把我们带到那儿的,还是对于 Importance Sampling 这种方法的理解。如果一个场景内有百万条光线,你是不可能对每条光线做投射的。所以你需要决策对哪些做采样。”“我们做出了一种名为 ReSTIR 的新算法,最后以 RTXDI 技术名称落地,真正以高效的方式对光线的采样,投射更少的光线就能达成很高的画质。” “RT core,超采样(DLSS),以及有效的 Importance Sampiling,才让我们真正做到了 100x,真正做到了游戏中的实时光追。” 说完光追,再来谈 CuDNN,也就是 CUDA Deep Neural Network,当然就是用来做深度神经网络加速的库。了解 AI 的同学应该不陌生。Bill 说 2010 年前后,他跟一名同事一起吃早饭,当时就提到在互联网上找(识别)猫的事情。那个时候还需要 16000 颗 CPU 来做这件事。 “我就说 CPU 不行啊,我们应该让这样的东西跑在 GPU 上。”Bill 说道,“当时我们团队内的一名编程系统研究员也鼓励我这么做。最后出来的软件就是 CuDNN。”“其实这比 AlexNet 还早了 2 年。”“我们当时就意识到 AI 会是个影响深远的东西。我们就真的开始着手构建软件栈了。” “那个时间点放在 Kepler 架构上已经有点太晚了,所以我们着眼的是 Pascal、Maxwell,加入了一些特性;真正严肃对待是在 Volta 这一代上;到 Ada 平台,就是我们期望看到的了。”看看这个演进,要不怎么说英伟达现在股价的高涨不是一朝一夕之功呢。 再谈几个有趣的技术:硅光、用 AI 设计芯片、AIPC 上面这些其实还是更为普罗大众所知的东西,Bill 当天谈了 NVIDIA Research 旗下各小组的一些研究。受限于篇幅,无法一一介绍。这里给一些我个人觉得还挺有趣的技术研究。 首先聊聊电路方面的研究吧:因为我见识浅薄,之前一直以为 fabless 企业是不需要把投入放在半导体的电路层面的。不过 NVIDIA Research 还真是有个 Circuit Research 的团队,“让我们的 GPU 更好”。 比如说 short reach links(短距离连接)——很遗憾无法给你们看图,Grace Hopper 整颗芯片上,连接 Grace CPU 和 Hopper GPU 的就是这个 short reach links,也包括 HBM 内存连接。目前基于 TSV 做 die 堆叠的方案,已经实现了 0.1-0.5mm 距离内 0.1pJ/bit 的能耗水平。 这次新发布的 Blackwell,连接两片 die 的技术名称完全没听清(好像是 ISNRP,Incredibly Short Reach NP),能耗量级是 1-2mm 0.2pJ/bit。基于先进封装的片内通信能耗,和要走 PCIe 5 这种通道互联的量级差异起码有 20 倍以上。 Grace Hopper 和 Grace Blackwell 的 CPU 到 GPU 通信连接是多年前就完成的,能耗量级 10-15mm 1pJ/bit——这应该是一种走基板的通信了,虽然和 Blackwell 片内两片 die 互联不能比,但还是比 PCIe 5 要节能了 5 倍以上。 所以实际上,英伟达常年来也坚持给自家芯片的互联命名,还是有道理的。似乎这种事,在 fabless 企业内也只有英伟达、苹果这类企业做得到,互联的某些层级还是有自家的标准和技术在里头的。组成自有成套、成规模的生态就是任性啊... 还有 long reach links(长距离连接)——至少是芯片与芯片间(封装与封装之间)的传输了,这部分据说英伟达在考虑光通信(photonics),只不过现在成本和功耗都还不理想。但 Bill 认为让硅光成本降下来,降到可比肩铜(电传输)的程度还是有戏的,毕竟“铜差不多发展到头了”。 “目前我们正在努力去尝试波分复用(dense wavelength division multiplexing)技术”,“在传输芯片里用锥形激光源”,“对不同色光做调制,以每种色光较低的 bit 率做密集波分”,“达到每根 fiber 最高 TeraBits 带宽”;“接收端的芯片也有个环形谐振器(ring resonator),对色光做检测。”(这一段如果有描述错误的轻拍啊,我已经尽力把我听到的做我能理解的还原了) “这些现在已经在我们实验室里了,只不过还没准备好量产。”“不过我们有信心,最终可以把能耗降到 2pJ/bit 的量级,能耗和成本都能比肩电传输。” 这部分的第二个技术,我想谈一下借助生成式 AI 来做芯片设计的 ChipNeMo。黄仁勋在主题演讲里也提了一下。应该是去年 GPT 和生成式 AI 大火以后,下半年好像就陆续有研究团队说,借助于 ChatGPT 来设计芯片的,全程自己不需要写一行代码,单纯就是跟 GPT 各种聊,让它写,最后的芯片就能跑起来。 我个人是相信这类新闻的,因为我自己去年数据库概念这门课,最后交给老师的 project,几乎所有代码都是 ChatGPT 写的,虽然程序框架和设计肯定是我自己做的,而且也花了大量时间 debug。芯片设计,如果不是那么复杂的话,也是类似的——只不过和 ChatGPT 聊的人自己还是要具备相应的业务能力的。 去年我采访的一些 EDA 企业认为,做复杂芯片设计的话,这种方式还是异想天开。但起码协助芯片设计是能做到的嘛。ChipNeMo 是英伟达内部的一个,用于芯片设计辅助的生成式 AI,也是 NVIDIA Research 做的。 预训练互联网数据得到 70b/130b 参数规模的 Llama 2 基础模型;然后进行芯片设计专门的训练,据说给到了 48GB 的设计文档、RTL 代码之类的数据,都喂进去;最后再进行监督 fine-tune——得到 ChipNeMo 聊天模型。 在英伟达内部,ChipNeMo 的一部分职责是给一些初级水平的芯片设计者用,他们有问题就可以直接问 ChipNeMo 了。另外一个职责是,对 bug 报告做总结——硅工们发现了 bug 会记录下来,这类报告可能会非常复杂、也很长,对旁人来说也很难理解,ChipNeMo 是可以给出容易理解的总结的。另外 ChipNeMo 自己也能生成 Verilog,不过这就只供参考了。 再介绍个所谓的 Efficient AI 研究,据说是 NVIDIA Research 最近才成立的研究团队,致力于让 AI 跑得更高效。当然其中涵盖很多不同的技术,比如说剪枝、稀疏化什么的。其中一项研究成果是 AWQ(Activation-aware Weight Quantization)权重量化,某些网络权重甚至可以降到 2bit,“某些权重会比其他权重更重要;有时需要表达高分辨率,有时则只需要很低的分辨率...”,而这些优化会“让你的网络跑起来更高效”。 “我们也会主动去发现神经网络,去找到最高效的模型。”说得还是挺泛的啊,但总体要表达的都是让 AI 更为高效,这应该也是现在很多 GPU/AI 芯片公司在做的事情。 其中一个例子就是基于 AWQ,让 LLM 跑在边缘或者端侧设备上——对英伟达来说,现阶段最重要的主题,其实还不是 LLM 跑在 PC 上,而是跑在 Jetson Nano 这样的边缘平台上。不过 AI PC 肯定也是这其中的一个重要议题。好像过去大半年 Intel 中国研究院也在搞这个东西吧,毕竟大家都要推 AI PC。 最后再聊一个基于 DaaS(Data as a Service)的快速 GPU 存储访问的项目吧。对某些场景、某些系统来说,比如说电商的推荐系统,请求大量数据可能没办法一下都塞进主内存里。所以 NVIDIA Research 有个项目是把存储系统,直接挂到 GPU 上。 一般的传统方法是文件系统请求要通过 CPU,即便是 GPU Direct 也如此。GPU Direct 的数据路径是直接走往 GPU 内存的,但 IO 操作最后还是 CPU 来给存储设备发信号,让存储设备直接把数据给到 GPU。这里的问题还是 CPU 太慢,100 万 IOPS 量级。 英伟达已经有了个原型方案,似乎产品化已经很快了,用 DaaS 方法。在 CPU 初始化安全认证访问以后,CPU 好像就不在数据请求的回路中了,GPU 可以“directly queue”,请求 IO 设备,达成 50 倍的存储带宽。“它能让你进行细粒度的存储操作,这很关键。”“你可能不需要 4k block 数据获取,而是小块的数据,需求更高频的 IOPS,在不需要大量 over fetch 的情况下就能做到。” 篇幅太长了,更多的就不说了——从芯片聊到软件了(软件还是大篇幅)。其实还是有很多可以去谈的东西,比如说 Bill 提到最近在搞 Automatic Fusion,针对 DNN 程序的 kernel fusion,提高推理的效率——据说自动 kernel fusion 的效果远优于程序员手动 fuse。 还有各类编程系统研究——其实也就是把各种原本只能 CPU 跑的东西,实现 GPU 的加速计算;以及内部的多 die 实验研究,像 Grace Hopper, Grace Blackwell 之类就是 NVIDIA Research 大量研究迭代后的产物; 更多 AI 视觉生成类应用;地球数字孪生 Earth-2,以及气候、天气相关的高精度研究;汽车 ADAS 相关动态驾驶场景“自监督重构”的研究,在做名为 PARA-drive 的感知基础模型;以及用强化学习来设计 GPU 上的 NV-ENC 视频编码器等等等等... 可能对很多日常就一直在关注英伟达的同学来说,上面很多内容也不能算多新鲜。这里还有一些内容是我没写的,比如机器人、汽车的部分我基本都没写,一方面是我自己也不大感兴趣,另一方面是今年 GTC 其实机器人相关的更新是个重点——所以机器人后面我是打算另外写文章的。 期望这些东西大家还感兴趣吧。说再多 AI 要改变世界的废话都是无用功,这些东西都是在潜移默化中发生的。不知各位发现没有,英伟达自己内部就在大量应用 AI 技术,包括生成式 AI,用 AI 来做产品。自家芯片和系统驱动着 AI,然后 AI 应用又在推动芯片和系统设计与结构进步。还挺有趣的吧...
  • 热度 6
    2024-3-31 00:26
    257 次阅读|
    0 个评论
    第一篇转一个GPU的知识扫盲文 主要内容如下,具体内容是英文。 什么是GPU GPU(图形处理单元)是专为复杂和并行计算而设计的专用处理器,对于渲染图形和图像等任务至关重要。 与CPU(中央处理单元)不同,GPU针对高度并行的任务进行了优化,并与CPU一起工作以实现最佳性能。 GPU的历史 在1990年代末由NVIDIA和ATI(现为AMD)等公司主要为了游戏和娱乐而开发。 从渲染3D图形发展到支持可编程着色器,随后随着通用图形处理单元(GPGPU)的出现而用于科学研究。 GPU的工作原理 高度并行处理器,具有针对不同类型计算进行优化的标量和矢量核心。 利用专门的内存架构进行高吞吐量和低延迟处理。 GPU的常见组件和结构 核心组件包括图形处理集群(GPC)、流处理多处理器(SM)、CUDA核心和内存子系统。 用于射线追踪和机器学习等任务的专用单元。 GPU的应用 用于游戏、科学研究、机器学习、加密货币挖矿以及虚拟/增强现实应用。 GPU的价格 与其他计算机组件相比,GPU可能相对昂贵,这是由于它们在性能方面的关键作用。 二手市场价值根据品牌、型号、规格和市场需求等因素而变化。 概念澄清 GPU、图形卡和视频卡之间的区别。 集成GPU和独立GPU之间的区别。 CPU和GPU针对不同任务的不同优化。 CPU和GPU内存架构的对比。 GPU的挑战和未来 在性能和功耗之间平衡是一个关键挑战。 预计GPU将继续发展并变得更加专业化,在各种行业和应用中发挥关键作用。 Clearing Up the Confusion: Understanding GPUs and Their Role in Modern Computing What are GPUs Graphics Processing Units (GPUs) have become an essential part of modern computing, powering everything from gaming and entertainment to scientific research and artificial intelligence. A graphics processing unit (GPU) is a specialized type of processor that is designed to handle the complex and highly parallel computations required for rendering images and graphics. Originally developed for use in computer games and other visual applications, GPUs have evolved to become an essential tool for a wide range of industries, including artificial intelligence (AI), machine learning (ML), scientific research, and more. But GPU is not CPU. CPUs (central processing units) are general-purpose processors that are optimized for handling a wide range of tasks, such as running applications, managing the operating system, and handling input/output operations. The CPU is responsible for managing the system’s resources and executing instructions, including those required to boot the computer and start the operating system. Without a CPU, the computer would not be able to carry out these basic tasks and would be unable to function. GPUs, on the other hand, are optimized for highly parallel tasks such as rendering graphics, performing scientific simulations, and training neural networks for machine learning. While GPUs are powerful processing units, they are designed to work in tandem with CPUs to provide optimal performance. History of GPUs The first GPUs were developed in the late 1990s by companies such as NVIDIA and ATI (now part of AMD). These early GPUs were primarily designed for gaming and entertainment applications and were used to render complex 3D graphics and special effects in video games and movies. As the demand for high-quality graphics and video processing increased, so did the capabilities of GPUs. In the early 2000s, NVIDIA introduced its GeForce 3 series of GPUs, which were among the first to support programmable shaders. This allowed developers to create more realistic lighting and shadow effects in games and other applications. In the mid-2000s, GPUs began to be used for scientific research and other non-graphics applications. This was made possible by the introduction of General-Purpose Graphics Processing Units (GPGPUs), which allowed programmers to use the parallel processing capabilities of GPUs for a wide range of computational tasks. How GPUs Work At their core, GPUs are highly parallel processors that are optimized for performing many calculations at once. This is achieved through the use of thousands of small processing units called cores, which work together to perform complex calculations. In a typical GPU, there are two main types of cores: scalar cores and vector cores. Scalar cores are designed for performing simple arithmetic operations, while vector cores are optimized for performing more complex matrix operations, which are used in many scientific and engineering applications. To achieve high levels of parallelism, GPUs also use specialized memory architectures that are designed to deliver high bandwidth and low latency. This is important for applications that require large amounts of data to be processed quickly, such as video rendering or machine learning. Common GPUs Components and Structures The heart of the GPU is the graphics processing cluster (GPC). A GPU can contain multiple GPCs, each of which contains multiple streaming multiprocessors (SMs). Each SM consists of a number of CUDA cores, which are responsible for carrying out the GPU’s processing tasks. The GPCs are connected to the memory subsystem, which consists of high-speed memory chips and a memory controller. This memory is used to store data that is being processed by the GPU, such as textures and frames. The memory is typically accessed using a wide memory bus to ensure fast data transfer rates. In addition to the memory subsystem, the GPU contains a number of specialized processing units. For example, modern GPUs often include dedicated units for handling ray tracing, machine learning, and other specialized tasks. These units can be customized or reprogrammed to handle different types of processing tasks, depending on the needs of the application. The internal structure of a GPU is designed to provide high throughput and parallel processing capabilities, allowing it to handle complex graphics rendering, scientific simulations, and other tasks that require large amounts of processing power. As technology continues to evolve, the internal structure of GPUs is likely to become even more complex, with new features and components designed to handle increasingly sophisticated processing tasks. Applications of GPUs Gaming and Entertainment: GPUs are used to render high-quality graphics and special effects in video games, movies, and other entertainment applications. Scientific Research: GPUs are used for a wide range of scientific and engineering applications, including weather forecasting, molecular dynamics simulations, and more. Machine Learning and Artificial Intelligence: GPUs are essential for training and running complex neural networks, which are used in applications such as image and speech recognition, natural language processing, and more. Cryptocurrency Mining: GPUs are often used for mining cryptocurrencies such as Bitcoin and Ethereum, which require large amounts of computing power to perform complex calculations. Virtual and Augmented Reality: GPUs are used to render high-quality graphics and video in virtual and augmented reality applications, allowing users to immerse themselves in virtual environments. GPU Prices Compared to other components of a computer, GPUs can be relatively expensive. While the price of a GPU can vary widely depending on the specific model and brand, it is not uncommon for a high-end GPU to cost more than other components such as the CPU (Central Processing Unit), RAM (Random Access Memory), or storage drives. For gaming or professional computing like AI and cryptocurrency mining, the GPU is a critical component for performance and productivity, so their GPUs are high-end ones. Hence, the used high-end GPUs can have resale value, depending on the specific model, condition, and market demand. The value of a used GPU will generally depend on the same factors that affect the price of a new GPU, such as the brand, model, specifications, and age.Some high-end GPUs, such as those designed for gaming or professional use, may retain their value relatively well even after being used for a certain period. However, older or lower-end GPUs may have less resale value, especially if they are several generations old or have outdated specifications. It’s worth noting that the resale value of a used GPU can fluctuate based on market demand and other factors, so it’s important to research the current market prices and conditions before selling a used GPU. Anyway, it is always good to sell GPUs online than dump them as e-waste. Concept Clarifications GPU, Graphics Cards, and Video Cards are often used interchangeably, but there are some subtle differences. A GPU is the processing unit itself, while a graphics card or video card refers to the physical card that contains the GPU and its associated memory and other components. In other words, a graphics card or video card is the hardware that houses the GPU. Integrated GPU and discrete GPU refer to different types of GPUs. An integrated GPU is built into the processor (CPU) itself and shares the same memory as the CPU. It is generally less powerful than a discrete GPU, but can still handle basic graphics tasks such as video playback. A discrete GPU, on the other hand, is a separate card that is plugged into the computer’s motherboard and has its own dedicated memory. It is more powerful than an integrated GPU and is necessary for more demanding graphics tasks such as gaming, video editing, and scientific simulations. While GPUs and CPUs are both processors, they are optimized for different types of tasks. CPUs are designed to handle a wide range of general-purpose tasks, such as running applications, managing the operating system, and handling input/output operations. GPUs, on the other hand, are optimized for highly parallel tasks such as rendering graphics, performing scientific simulations, and training neural networks for machine learning. The main difference between computer (CPU) memory and GPU memory is their architecture. CPU memory is typically based on a hierarchical architecture with a small amount of fast cache memory closest to the CPU and larger, slower memory further away. This is designed to minimize the time it takes for the CPU to access frequently-used data. GPU memory, on the other hand, is designed to handle large amounts of data simultaneously and is based on a flat architecture with a large amount of memory that can be accessed quickly in parallel. This is necessary for applications such as video rendering and machine learning that require large amounts of data to be processed quickly. Challenges and Future of GPUs One of the main challenges facing GPU developers is the need to balance performance with power consumption. While GPUs are highly efficient at processing large amounts of data, they also consume a lot of power, which can be a limiting factor for applications that require low power consumption. To address this challenge, GPU manufacturers are developing new technologies such as low-power architectures, specialized circuits for specific applications, and more efficient memory architectures. Looking to the future, GPUs are expected to play an increasingly important role in a wide range of industries and applications. As the demand for high-performance computing continues to grow, it is likely that GPUs will continue to evolve and become even more specialized, making them an essential tool for the development and advancement of technology.
  • 热度 2
    2023-8-21 10:49
    3361 次阅读|
    0 个评论
    我体验了《黑神话:悟空》,告诉你什么配置能畅玩~
    周末在杭州云栖小镇体验了一把《黑神话:悟空》——就是那个受关注度极高,而且也算是在前期宣发就走出了国门的国产游戏。虽然咱也不是专业玩游戏的(毕竟年纪大了),但既然跟图形、AI、GPU 沾边,那还是有的聊...... 好不容易申请到 45 分钟的现场试玩,《黑神话:悟空》还是给我留下了非常深刻的印象:主要是画面方面的——玩法部分,咱也就是看个热闹。我这两年对游戏,包括这次试玩的《黑神话:悟空》感到格外惊叹的是,实时计算——或者叫即时演算的游戏画面,直观感受已经比多年前延后渲染(不是 TBR 那个延后 GPU 架构,而是像 Pixar 动画那种一帧就渲染一整天的延后...)的 CG 动画要好了。 恰好前不久结束的 SIGGRAPH 上, Jensen 黄虽然主要说生成式 AI,但在 SIGGRAPH 这种图形顶会上,势必是要谈一谈图形的(...)。他说 2018 年英伟达展示 Turing 架构 GPU,演示星球大战光追 demo,“这个演示可能大约包含了 50 万多边形,每像素 2 条光线(2 rays/pixel),每条光线几次少量折射。” “我们为之加入了环境光遮蔽、区域光源、镜面反射,整体是光栅化与光线追踪混合的一个 demo。以 720p 30fps 渲染,再用 DLSS 超分到 4K。这个演示在当时看来是非常惊艳的。”而今年英伟达 GTC 开发者大会上展示的 Racer RTX——就是那个玩具赛车 demo,已经包含“2.5 亿多边形、10 光线/像素,每条光线大约 10 次反射”,“整个场景是完完全全的光线路径追踪(path trace),没有用光栅化。以 1080p 30fps 渲染,再借助 DLSS 技术——每 8 个像素,就只有 1 个是渲染出来的,输出 4K 30fps。” 真就这 5 年间的事情。其实如果把时间拉长到 10 年,就《黑神话:悟空》跟《上古卷轴 5:天际》比比,就会发现人类半导体与图形技术的进步有多快——尤其看看《黑神话:悟空》游戏里的毛发、角色与光影的互动(或者也可以说,现在某些国产 3D 动画,比起 3D 游戏来是真的拉胯... 先聊聊游戏玩法 这次试玩总共给了 4 个场景,主要对应 4 场 BOSS 战,分别是百足虫、赤尻马猴、虎先锋、紫云山;应该也是为了展示 4 种不同风格的场景。比如说虎先锋场景,主战场是在怪石嶙峋围绕的露天血池里,对应白日青天那种炫目日光,搭配血池水面的反射——逆光和顺光看到的角色效果差别都很大;而赤尻马猴则是在雪地场景下;紫云山场景对应了落英缤纷的秋日,漫山枫叶红... 试玩中的紫云山场景 不过这几个场景也并非全然是 BOSS 战——在进入 BOSS 战前亦有其他扩展的地图与互动元素。比如紫云山场景前段就有个大概是刻意展示画质的路径,包括过吊桥、进山门之类的完整场景,最后才在一处空旷地遇见 BOSS。似乎紫云山场景有个简单的故事背景,路上也有对话的妖精——体验时间短,也没来得及细品;而赤尻马猴 BOSS 战前,也会遇见雪地里山路上的小怪,三两下敲死一个。 场景内的元素互动并不算多,花草树木随角色动作而摇摆、还有经过会飞起的鸟儿都算是常规,偶有一些对象(比如紫云山场景中的一个缸)可以被打碎——但是完全预设好的,没有做特定角度或力度的物理计算;虎先锋战斗在血池里,液体因激烈战斗而流动、溅起,以及成片飞溅到 camera 上,引发画面形变、折射都是绝对的 3A 质量。 另外,每个场景内都有一处上香的佛龛——类似战斗场景中的回复点(或可能的存档点),可在此处补充装备,并做法术技能的调整。 上香画面(注:图片为屏幕翻拍) 当然了,4 个限定场景的地图都有边界——所以试玩的版本当然谈不上“自由世界“——很多高处也去不了。 输入设备同时支持手柄和键鼠——试玩现场用手柄和键鼠的人,看起来是一半一半的。我只玩键鼠,就谈谈键鼠。常规玩法很多同学应该已经在此前的先导试玩视频里见过了,角色控制孙悟空(不知道后续会不会增加其他角色):鼠标左键多段棍术攻击——平 A 会积攒能量(似乎叫棍势段数,类似怒气槽),右键重击,以及长按右键蓄力释放能量。 Shift 按键是疾行,不过就我的体验来看,疾行无法加速到达目的地(好像由于后摇的存在,日常跑图不如普通行进速度),好像也无法连续使用;Ctrl 跳跃;空格键是闪避(应该没有受身);V, C, Z, X 对应不同的棍法......还有使用道具、补血之类的快捷按键就不多说了。 1,2,3,4 数字按键对应了不同的法术——前面谈到了,法术是需要到佛龛上香才能改变设定的,在习得的法术多的时候,选择快捷使用的那 4 个法术。 从设置法术的界面来看,4 个法术对应着“奇术”“身法”“毫毛”“变身”。除了消耗技能点,每个技能也有冷却时间。 举个例子,这次试玩准备的奇术包括了“定身术”,命中后可以让对方在短时间内无法行动;而“身法”如“聚形散气”,类似于脱离原躯壳并短时间无敌(替身术?),还有个“铜头铁臂”,是令角色石化——石化期间,若对手攻击,则会受到反震伤害...;“毫毛”这个法术孔位,试玩过程里好像是不可用的,可能我错过了(隐约记得有个分身术?);“变身”有个变身为狼妖的选项,按下以后,更像是换了一个角色上场,技能都不同了... 这些操作,就我这种手残党,做到娴熟战斗还是需要时间适应的。好在试玩流程前段,还给了几个简单的新手任务,加速上手。不过因为时间短,我又忙着拍照片和视频,来不及掌握连段和对应特定招式——有一些炫酷招式,是需要组合键触发的,包括多段平 A + 重击之类的。 角色装备界面,有头冠、衣甲、臂甲、腿甲、武器等项目(没错!不是只有金箍棒),感觉反馈到孙悟空身上,变化细节还是相当丰富的。比如说“百戏衬钱衣”这件衣甲,上面缀满铜板,这些铜板跟人物骨骼应该都不是连着的,角色做动作的时候还会往不同方向摆动;而“昆蚑戗金甲”则又是一身截然不同的行头...绝对不是换身皮肤这么简单。 装备选择画面(注:图片为屏幕翻拍) 连上香都有一个拔毫毛、插香的动作,我觉得这次开诚布公的试玩,还是相当有诚意的。而且限定场景内,我没发现如明显穿模之类的 BUG(去试玩之前还问了身边爱玩游戏的朋友,到底该怎么试玩,朋友说:你就拍穿模的画面下来...)。 再谈谈试玩体验 因为这次试玩主打的就是个 BOSS 战,所以其实也就是体验打起来如何。这方面说实话,我玩的游戏不算多,没什么发言权,下面的内容权当是小白谈主观感受,你们看看就好。 我觉得虽说当天到场排队准备试玩的人一波接一波的,但真正能把四个场景玩通关的应该不会很多,感觉试玩是设定了一定的强度的——如果你和 BOSS 纯粹硬杠,那肯定很快血槽空。然后一个倒地动画、一粒金色闪光从身体里飞出、大侠重来。尤其虎先锋场景是在血池里战斗,被拍死了,也是浮在血水上,死相凄惨。 所以起码试玩的难度,是略微考验微操作、走位之类的。因为技能有冷却时间,加上闪避、技能施放、棍术攻击都有明确的硬直时间,无敌时间又似乎很短,很多操作都考验执行时机。尤其空格键闪避,后摇期间无法再来一次空格键取消,那么乱按闪避也会很快被妖怪抓走... 试玩过程里,有个“喝酒”的补血操作。这个补血也不是随便按一下,血槽就立刻上涨的。它需要在没有攻击、也没有被攻击的时候,“抽空”“喝酒”(可以边走边喝)。喝酒也有个动画,期间也会被打断。加总在一起,其实是需要熟练操作以后,静下心来对抗的。我觉得有耐心的话,其实也没那么难——定身术、铜头铁臂这类技能设定还是很好。 (要问我有没有通关?我一个场景也没通关...还要被活动现场那么多人围观... 吐舌头... 现场都有人因为终于在 N 次尝试过后,终于挥棒打死了 BOSS 而欢呼的。期待正式版出个 Kid Mode 让我们这种小白享受纯硬杠的快感吧。(打击感这种玄学我就不说了,我觉得挺好,有你们所说“拳拳到肉”(棍棍到肉)的感觉... 过目难忘的游戏画面 《黑神话:悟空》最初有讨论度,甚至预告片在 YouTube 都那么高的点击量,很大程度都是画面具备国际水准所致。虽说最早放预告到现在隔了也算很久,今年初唱衰《黑神话:悟空》的声音不断,说它是动画版《三体》接班人的嘲讽都不少;但至少从我个人的角度来说,自己真正上手《黑神话:悟空》,还是感觉到画面的惊艳(可能我没见过什么世面吧,虚幻 5 引擎开发游戏大概都素质普遍很高... 我说几个给我印象比较深刻的点。首先是光影互动,我不确定试玩版《黑神话:悟空》是否应用了光线追踪(我猜应该有),但据我所知正式版是一定支持光线追踪的,毕竟不是说英伟达在游戏开发过程中,就和游戏科学紧密合作么?“RTX”里面的一大亮点就是光线追踪(另一大亮点是DLSS 3)。 光线追踪带来很重要的价值,就是和场景中环境光线的极强互动,阴影、高亮位置的变化。虎先锋场景下,进入血池和 BOSS 开打之前,孙悟空是站在暗处的,而虎先锋站在烈日下,这时候从 camera 视角看过去,孙悟空明显是个剪影,而 BOSS 所在位置亮度极高。 我觉得水面反射、丛林中的丁达尔效应什么的都还是其次。在进行战斗时,随着孙悟空与虎先锋的反复换位,它们在画面中呈现出的样貌,也在不停发生明暗变化。这种变化,应该是去除以前游戏在白昼下战斗时存在“塑料感”的关键。(当然精制的建模也非常重要,但我觉得这个是当代 3A 游戏的基本功) 另外,试玩的每个场景在初次进入时都有一段即时演算的过场。你们知道,过场动画一般都有明确的景深变化,主要是交代人物关系,和做画面局部内容的强调的,也加强了画面的质感,就像演电影一样。在这段过场结束,把画面控制权交给玩家时是无缝衔接。这种无缝衔接很重要的一点是景深的调整。 我注意到,在进入第三视角画面,要开始控制角色时,会有一小段时间,孙悟空作为 camera 所摄画面内的前景,会有个稍稍的虚化——然后渐渐锐化,后景远处略有虚化。这种景深的调整,是给人相当真实、沉浸的体验的。不像前些年的 3A 游戏,景深计算和最终效果呈现感觉都很假... 然后就是俗称“海飞丝”效果(好像具体是 NVIDIA Hairworks 毛发增强技术,似乎最早是 DirectX 11 做出支持的),体现在虎先锋这种毛发丰沛的妖怪身上,运镜时都觉得这一身柔顺的毛毛“纤毫毕现”,而且是软的,不是那种一坨一坨黏在一起又假又硬的毛发。遥想我学生时期玩《最终幻想 X》,都已经觉得提达的头发做挺好的了,和现如今真是天壤之别啊。这大概就是图形技术这么多年的推进吧。 别的就不多说了,什么雪地里的脚印、积雪深度;吊桥配合秋日里的落英缤纷,加上中国古典建筑韵味,美不胜收(而且貌似落下来的叶子真有几片掉在了地上,这在游戏里应该是绝少见的,不知道是不是我眼花);迎风飘动的野草、石头和建筑的纹理细节之类之类... 有关配置 我们试玩全程看不了机器配置(起码我没找到看的选项,试玩程序也无法简单切出),主机也是以黑盒子的形式放在地上的——虽然风扇有 RGB 灯能透出来,但咱也没有透视眼,看不见配置(后来听说可以看?)...我起初觉得这种官方试玩,怎么也得配上至少 GeForce RTX 4080 才像话。 而且试玩过程的确是丝般顺滑的,我感知上就是很流畅。虽然我知道 DLSS 3 有补帧能力,但也总觉得得 4080 才对得起这个画面吧。后来打听了一下,发现全场设备都是 GeForce RTX 4070 或 4070 Ti开DLSS 3稳定在4K 60fps,感觉现在的技术还是有点牛的(再说一遍,可能是我没见过世面... 其实我前一阵写 SIGGRAPH 的文章提过,老黄在这种图形顶会上,公然用大把时间去聊 AI 也还是有道理的。因为人家聊的就是 AI 如何帮助图形技术发展,或者用他的话来说,是 Turing 架构就首次实现了 AI 和图形的 unified。 DLSS 3 的本质,一方面是画面的 AI 超分——比如把 1080p 超分成 4K;另一方面是帧生成——不是渲染,而是在图形渲染流程后,来生成帧;当然还包括 NVIDIA Reflex,降低输入输出延迟的。 一个是静态画面升格(分辨率提高);一个是动态画面补足(比如 30fps 提升到 60fps)~是为 DLSS 3 完全体,而且是基于 AI 的。想想还真的很有趣,现在玩游戏,75% 的像素都是生成的,以及一半的帧都是生成的——所以老黄说,现在每 8 个像素,只有 1 个像素是渲染出来的,就这个理... 我觉得这个时代下,大家真的要拥抱 AI。不要停留在 Tensor core 不算图形算力堆料的古板思维上。这个逻辑其实很简单,如果靠堆晶体管,来暴力提升图形渲染能力,半导体技术进步真的赶不上人类的需求——就算做出来了,那种显卡你也买不起;这种时候,转换思路,堆 AI 算力,仰仗“生成”的像素和帧来提升实际游戏体验,对玩家、对英伟达、对游戏厂商来说,都是很划得来的生意。 起码我这种普通用户,就感知不出《黑神话:悟空》试玩过程里,那些 DLSS 3 生成的帧带来过什么“出戏”的观感影响,那这种技术就是值得去推广的。 最后总结一下吧,我个人对《黑神话:悟空》给出“强烈推荐”评级(最后说一遍,可能是我没见过世面...虽说现在对这游戏的质疑声浪还是挺大的,毕竟那么久之前出的预告,现在都还没上架。其实这次办这样一个活动,应该也是为了稳住市场信心吧。那作为一个非游戏区常规网民,我觉得《黑神话:悟空》值得等一等。 我还拍了些视频,打算做个小片子,但估计也要等很久...最后援引试玩时,屏幕上方一句话,“您体验的是本次试玩定制的内容,不代表产品发售时的最终内容与品质”,也作为本文的免责声明...(逃
相关资源
  • 所需E币: 1
    时间: 2023-6-1 10:51
    大小: 48.27MB
    GPU与MATLAB混合编程-(国际信息工程先进技术译丛)-[韩]郑郁旭JungW.Suh&金英民Youngminkim
  • 所需E币: 1
    时间: 2023-4-4 09:41
    大小: 60.76MB
    GPU精粹-实时图形编程的技术、技巧和技艺
  • 所需E币: 1
    时间: 2023-4-4 09:41
    大小: 105.2MB
    GPU精粹2-高性能图形芯片和通用计算编程技巧
  • 所需E币: 1
    时间: 2023-4-4 09:47
    大小: 140.87MB
    GPU精粹3,HubertNguyen,清华大学出版社
  • 所需E币: 1
    时间: 2022-5-5 16:25
    大小: 2.98MB
    上传者: 西风瘦马
    GPU编程与CG语言之阳春白雪下里巴人.pdf
  • 所需E币: 5
    时间: 2021-9-19 10:42
    大小: 2.91MB
    上传者: ZHUANG
    VIS中电路模拟算法的GPU实现
  • 所需E币: 1
    时间: 2021-4-10 20:37
    大小: 11.3MB
    上传者: ZHUANG
    DSP和GPU在Android中的应用与研究
  • 所需E币: 3
    时间: 2020-12-14 15:29
    大小: 747.78KB
    上传者: sense1999
    深度学习中GPU和显存分析
  • 所需E币: 0
    时间: 2020-11-4 09:19
    大小: 1.88MB
    上传者: czd886
    一种基于可编程GPU的实时烟雾模拟算法研究
  • 所需E币: 5
    时间: 2020-8-9 18:50
    大小: 32.19MB
    上传者: VinayKIngle
    Nvidia如虎添翼
  • 所需E币: 2
    时间: 2020-5-8 18:18
    大小: 19KB
    上传者: 十次方
    当今汽车行业最受关注的话题之一是先进的驾驶辅助系统(ADAS),该系统可以多种方式帮助驾驶员处理潜在问题。它们可以为驾驶员提供视觉和听觉警告,也可以控制制动器、加速器和转向装置,使汽车远离危险。
  • 所需E币: 2
    时间: 2020-4-26 18:39
    大小: 394KB
    上传者: 十次方
    近几十年来,图形处理器(GPU)已从最初作为大型电玩的视频显示适配器演进为一个强大的计算中心,并且正在推动人工智能和机器学习的发展,包括从石油和天然气勘探到自然语言处理等众多领域的计算工作。如今,GPU正在自动驾驶和先进驾驶辅助系统(ADAS)技术的发展中扮演着越来越重要的作用。
  • 所需E币: 2
    时间: 2020-4-21 15:38
    大小: 28KB
    上传者: 十次方
    汽车行业是推动人工智能(AI)发展的重要行业之一,这是因为该行业致力于自动驾驶汽车和高级驾驶员辅助系统(ADAS)的泛在利益。汽车正在变得越来越智能,但是如果汽车行业要实现完全自动驾驶的目标,他们还有很长的路要走。尽管业界还在讨论实现全自动化所需的理想技术组合,但是有一点是明确的,那就是人工智能,尤其是神经网络将发挥重要作用。
  • 所需E币: 2
    时间: 2020-4-1 16:05
    大小: 67.5KB
    上传者: 十次方
    支持AI人工智能和ML机器学习部署的数据中心依靠基于图形处理单元(GPU)的服务器为其计算密集型架构提供支持。到2024年,在多个行业中,GPU使用量的增长将使GPU服务器的复合年增长率超过
  • 所需E币: 4
    时间: 2019-12-24 11:02
    大小: 469KB
    上传者: 2iot
    现阶段平板电脑所采用的芯片组(SoC)与智能手机所采用的芯片并没有拉开太大的距离,也就是说在运算性能上平板电脑并不比主流的智能手机强多少。在操作系统大同的情况下,平板电脑除了拥有较大的屏幕,与智能手机间的硬件差距并不十分明显。平板电脑作为介于手机与笔记本之间的一种产物,也应该拥有介于手机与笔记本之间的硬件配置,这样才能使平板电脑持续稳定地发展下去,不然平板电脑将有可能被体积更小功能更为全面的智能手机所代替。在本页阅读全文(共7页)一、平板电脑ARM芯片概况   平板电脑大致上可以分为两种类型:传统型平板电脑和以iPad为代表的新一代平板电脑。传统“平板电脑”概念是由微软提出的,是指能够安装x86版本的Windows系统、Linux系统或MacOS系统的PC。由于X86架构功耗较高,势必造成了传统型平板电脑在续航及散热方面的表现不尽人意。2010年1月,苹果发布了iPad这款平板产品,掀起了新一代平板电脑的热潮,以iPad为代表的第二代平板产品虽然不属于微软提出的平板电脑概念范畴,但是这个名字已经广泛为大家所采用,因此我们可以将它们总结为新一代的平板电脑。[pic]平板电脑概念图   与传统平板电脑不同的是,新一代平板电脑大多采用ARM架构,这样就可避开能耗高的问题,在续航和散热方面有了很大改进。同时新一代平板电脑大部分搭载iOS、Android、webOS或者BlackBerryTabletOS系统,在界面交互性上优化不少,增加了用户的体验感。   在传统电脑领域,英特尔和AMD作为两大处理器巨头,统治了整个产业链多达数十年的时间。2010年新一代平板电脑出现以后,一定程度上对传统电脑产业造成了影响,使x86处理器的主导地位发生动摇。而整个平板电脑最核心最本质的硬件通用处理器部分,则是由一家较为低调的公司来设计并执行授权,它就是英国的ARM公司。[pic]ARM——AdvancedRISCMachines   ARM(AdvancedRI……