动态编程算法应用于医疗健康、机器人、量子计算、数据科学等多个领域。
3 月 23 日在 GTC 上发布的 NVIDIA Hopper GPU 架构利用全新 DPX 指令,将动态编程速度提高多达 40 倍。动态编程是一种应用于基因组学、量子计算、路线优化等领域算法中,用以解决问题的技术。
DPX 是 NVIDIA H100 GPU 的内置指令集,可帮助开发者编写代码,用以提高多个行业中动态编程算法的速度,从而加速疾病诊断、量子模拟、图形分析和路线优化的工作流程。
何为动态编程?
动态编程是一种起源于 20 世纪 50 年代的热门技术,它通过递归和记忆化这两种关键技术来解决复杂问题。
递归是指将问题分解为较简单的子问题,达到节省时间和计算量的目的。而记忆化则负责存储这些子问题的答案,这些答案在解决主问题时会被重复使用多次。记忆化可提高效率,因此在主问题稍后需要这些答案时无需重新计算子问题。
与 NVIDIA Ampere 架构 GPU 相比,DPX 指令在 NVIDIA H100 GPU 上将动态编程算法的速度提升了 7 倍之多。在搭载四块 NVIDIA H100 GPU 的节点中,速度还可以进一步提升。
用例涵盖医疗健康、机器人、量子计算、数据科学
动态编程通常用于许多优化、数据处理和组学算法中。迄今为止,大部分开发者都已在 CPU 或 FPGA 上运行了此类算法,而 NVIDIA Hopper GPU 上,借助 DPX 指令,可实现大幅加速。
组学
组学涵盖一系列生物领域,包括基因组学(侧重于 DNA)、蛋白质组学(侧重于蛋白质)和转录组学(侧重于 RNA)。这些领域为疾病研究和药物研发等依赖于算法分析(可通过 DPX 指令加速)的关键工作提供了依据。
例如,Smith-Waterman 和 Needleman-Wunsch 动态编程算法用于 DNA 序列比对、蛋白质分类和蛋白质折叠之中。这两种算法均使用评分的方法来测量不同样本基因序列的比对情况。
Smith-Waterman 可生成高度准确的结果,但与其他比对方法相比,需消耗更多计算资源和时间。在搭载四块 NVIDIA H100 GPU 的节点上使用 DPX 指令时,科学家可将此进程加快 35 倍,实现实时处理。其中,碱基识别和比对工作的速度与 DNA 测序相同。
这种加速将有助于全球各地的医院普及基因组分析,让科学家朝着为患者提供个性化医疗的方向迈进。
线路优化
无论是行走于仓库这样动态化环境中的自主机器人,还是需要将数据传输到计算机网络中多个接收端的发送者,都需要为多个移动部件找到最优线路,这一点至关重要。
为了解决这一优化问题,开发者使用 Floyd-Warshall 动态编程算法来寻找地图或图形中所有成对目的地之间的最短距离。在搭载四块 NVIDIA H100 GPU 的服务器中,与传统的双插槽 CPU 服务器相比,Floyd-Warshall 将速度提升了 40 倍之多。
结合 NVIDIA cuOpt AI 物流软件,这种线路优化加速可用于工厂、自动驾驶汽车中的实时应用或抽象图形中的地图构建和线路算法。
量子模拟
借助 DPX 指令,其他大量动态编程算法均可在 NVIDIA H100 GPU 上实现加速。量子计算领域前景广阔。在量子计算中,量子模拟的张量优化算法会使用动态编程。DPX 指令可以帮助开发者加快识别正确张量缩并顺序的过程。
SQL 查询优化
另一个潜在应用领域是数据科学。使用 SQL 编程语言的数据科学家通常需要在一组表上执行多次“合并”运算。动态编程有助于找到这些合并的最佳顺序,这通常可以节省大量执行时间,从而加快 SQL 查询速度。