在设计和建造独特科研设施的科学家与工程师们面临着相似的挑战。这些挑战包括管理超出当前计算基础设施承载能力、用于提取科学见解的海量数据速率,以及实时驱动实验。这些障碍阻碍了最大化科学发现的影响力,并显著减缓了知识增长的步伐。
某机构的科学家和工程师与这些设施合作,开发基于并行和分布式计算的新解决方案,以消除这些障碍。本文将介绍两个显著的例子,说明如何将复杂的物理问题形式化为易于处理的数学难题,并从中极大受益于GPU加速的科学计算,这两个例子涉及美国能源部支持的项目:NSF-DOE薇拉·鲁宾天文台和SLAC的直线加速器相干光源II。
这两个独特且大规模的科研设施都耗费了十年时间建造,旨在为全球科学界带来前所未有的科学发现。某机构的加速计算,结合GPU加速的Python库CuPy和cuPyNumeric,正在为实验引导实现实时反馈,这在以前是不可能的。该团队利用加速时空图像分析来处理实时“电影”,并利用cuPyNumeric和CuPy进行纳米级X射线成像分析,以实现LCLS II实验的实时引导。
以往需要九个月的数据分析现在只需四小时即可完成。
天体物理学与超快X射线科学
实验技术的突破使得能够以前所未有的内在时间和空间尺度,捕获比以往更多的天体,实现极高的数据采集率。
在薇拉·鲁宾天文台,天体物理学家和天文学家首次能够使用一台32亿像素的相机捕获整个南天,每晚发现超过2000颗新小行星。与此同时,在LCLS II,科学家和工程师驱动电子,这些电子在长达3公里的隧道内转换为光子,利用超快X射线脉冲制作材料原子尺度的“电影”。
- 天体物理学:NSF-DOE薇拉·鲁宾天文台的LSST相机每晚将产生20TB的图像,并以连续模式运行10年,每三到四晚绘制一次整个南天的地图。在一个月或更长时间内,LSST相机积累的数据将达到PB级别,这些数据将用于制作长达10年的宇宙延时电影。
- X射线科学:LCLS II产生最强大的X射线脉冲——每秒高达100万次——其亮度比原始LCLS提高了10,000倍。这使得能够绘制物质内部电子和原子的最快、最小运动。LCLS II在数天内产生PB级别的X射线数据,用于制作量子现象的电影,并提供关于物质行为的前所未有的见解。
共同挑战:对海量数据集进行实时分析的需求,对计算速度和内存的要求超出了传统系统的能力。加速计算提供了计算速度,但仍然必须使用分布式系统来处理这些问题的巨大规模。通过利用具有加速功能和专用网络的HPC系统,科学家可以满足这些需求。使用cuPyNumeric,程序员能够使用单一的编程模型,该模型既适用于传统系统,也能利用现代硬件特性。
迈向全工作流自动化:这两个设施都超越了批处理分析,倾向于模块化、高度并行的流水线,无论实验规模大小都能可靠执行。数据移动、转换和提取实现了高度自动化,使得人类的监督集中在假设和解释上,而不是手动干预或IT调优。
解决方案:某机构的加速计算,结合GPU加速的Python库CuPy和cuPyNumeric,共同为实验引导实现了实时反馈,这之前因为计算时间过长而无法实现。现在,通过在基于某机构的某型超级芯片和某型Blackwell架构的DGX系统上运行这些相同的科学分析流水线,研究人员在性能和协作方面获得了强大的新优势。
以往需要九个月的数据分析,现在通过巧妙地在GPU上使用分布式计算求解方程,只需四小时即可完成。某型超级芯片和某型Blackwell架构中提供的统一内存,通过GPU加速解锁了巨大的问题规模,能够快速提取物理参数。这些参数被用于以前所未有的速度训练AI模型,用于自主实验和科学分析。
薇拉·鲁宾天文台加速工作流与即时处理
LSST使用一台32亿像素的相机在时空中巡天,捕获南天,每晚产生高达20TB的图像。每晚,该相机将发现超过2000颗前所未见的新小行星。主要科学目标包括:
- 以精确的时间分辨测量追踪数十亿个天体。
- 探测和分类前所未见的瞬态现象(例如,超新星、近地天体和变星)。
- 寻找不断膨胀宇宙中暗物质/暗能量的踪迹。
- 创建整个南天中天体及其时空位置的全年存储库。向全球的经纪平台和天文望远镜网络发送警报,以获取对单个恒星、星系、黑洞更详细的后续观测。
迄今为止,天体物理学和天文学界共同开发了一个基于CPU的开源数据处理流水线,可在10分钟内处理数据。每张图像的采集时间尺度为40秒。实时数据处理——以迅速向全球望远镜发送警报并引导观测决策——需要加速计算。
这些步骤需要先进的图像校准、基构造、卷积、亚像素差分、模式提取以及对数据流的实时统计推断,这些数据流对于全球天体物理学和天文学界科学家和工程师开发的当前CPU集群处理工作流来说过于庞大。
为了在加速的时间尺度上实现这些目标,并实现数据处理操作中更大的复杂性,某机构和普林斯顿大学的科学家与工程师正在开发一个加速GPU工作流,称为加速时空图像分析。该工作流包括:
- 校准和基构造:快速校准海量CCD数据以去除伪影和畸变,并为每张获取的图像构造基函数,以实现坐标映射和变换。
- 链式变换:扭曲、卷积、背景和图像减除、物体运动、误差计算(通过CuPy)均在基于某型超级芯片和某型Blackwell的系统上进行了基准测试。
- 并行化:并行即时处理(映射、物体检测、拟合和编录)作为批处理或交互式会话运行。数值计算在毫秒内完成,而非分钟。
- 打包与经纪警报:在几秒钟内为全球LSST社区编录新天体、轨道信息、坐标,并发出全球警报。
LCLS II:通过并行和分布式计算扩展
在LCLS II,超快X射线脉冲生成材料和分子内部原子及电子动力学的“电影”。主要的科学挑战包括:
- 在单次实验中捕获横跨数十TB数据的3D X射线电影。
- 从快速散射的X射线图案中表征缺陷、声子色散、晶体结构、电子分布和量子现象。
- 为实验引导提供实时反馈,使科学家能够实时调整参数以捕捉稀有的动态状态。
这需要在严格的时限内,以单像素、单事件级别处理和分析数据,并使用能够检测和重建复杂原子运动的数学模型。本质上,这让研究人员能够实时观察原子的运动。
纳米级成像的超快X射线分析工作流
在LCLS,某机构和SLAC的科学家与工程师开发了流水线,用于并发处理X射线帧、拟合像素级元素的物理模型,并快速重建3D声子色散,以提取材料的热、光和电学性质。该分析利用模式匹配、非线性拟合和大规模归约,以对实时科学推断和自动仪器引导有意义的方式总结实验结果。
XANI如何加速整个技术栈?
- 数据摄取:高吞吐量连接快速将图像或实验数据传输到本地集群、超级计算机或本地DGX Spark存储。
- 并行化:cuPyNumeric通过策略性地划分全局数据数组,在可用资源上实现高效并行化。然后,通过将这些子分区上的操作映射到不同的处理单元来分配计算。运行时还将科学代码分解为依赖驱动的任务图,从而在所有分配的资源上实现隐式并行和动态工作调度。
- 算子链:XANI执行复杂的变换图(求和、卷积、基变换)作为一系列核函数,减少了延迟和内存移动开销。通过Python任务的互操作性,可以嵌入第三方的单GPU Python库(例如CuPy)以进行数据并行操作。
- 分布式扩展:cuPyNumeric使数组和矩阵计算能够从台式机扩展到千GPU集群,处理超出单节点内存的数据集——所有这些都原生在Python中实现。
- 协作与控制:研究人员可以交互式访问他们的环境和计算结果,监控GPU/CPU利用率,并使用内置工具分析性能。
加速计算赋能基于物理信息的AI训练
CUDA Python栈为以下方面提供了集成解决方案:
- 开发现有的解决方案不存在的、与Python生态系统广泛兼容的加速数学内核和函数。
- CuPy提供兼容GPU的NumPy和SciPy接口,以在单个GPU上实现并行,加速数值计算。
- cuPyNumeric提供熟悉的NumPy/SciPy接口,通过先进的运行时管理,实现跨多GPU和多节点的计算分布。
- XANI使用高性能数组操作和变换链,针对矩阵运算、亚像素扭曲和多项式投影等任务进行了优化。该软件包通过GPU内核和先进的工作流集成,加速了超快X射线表征。
所有上述代码都经过优化,可在基于某型超级芯片和某型Blackwell的服务器上运行。对于单独测试和开发,在这些DGX Spark或RTX PRO系统上运行这些代码,与在CPU系统上运行相比,能获得加速效果。
在科学领域使用GPU和CUDA Python的技巧
要使用GPU和CUDA Python解决科学问题,可以遵循以下策略:
- 确定关键的科学问题,然后是可以线性求解的相关数学运算和模型。开发一个工作流来处理原始数据并使用NumPy求解模型,然后移植到本地CuPy以实现并行化。对于需要多节点系统的数千到数十亿次计算,引入cuPyNumeric,利用本文讨论的相同模式,将相同的代码分布到多个GPU和节点上。
- 对于超快X射线和其他逐像素、模型拟合的工作负载,XANI提供了一个开源的、基于Python的流水线,该流水线封装了高性能GPU内核,并使用cuPyNumeric将向量化任务分布到可用资源上,并在多个GPU上调度它们。感兴趣的团队可以克隆XANI,将其作为参考设计,并调整自己的特定领域步骤(例如数据摄取、算子图、拟合和归约),以使用cuPyNumeric分布式执行,实现集群规模的加速。
- 相同的软件栈(CuPy、cuPyNumeric和XANI)可在多种某机构硬件上运行(包括DGX Spark、RTX PRO服务器以及通过8路服务器和配备某型超级芯片和某型Blackwell平台的DGX SuperPOD的工作站和桌面级系统),统一内存简化了对大于单个设备的数据集的处理。这意味着开发人员和研究人员可以从在笔记本电脑、工作站、单个DGX Spark或小型实验室集群上复制类似的缩小版工作流开始,然后将未修改的代码迁移到云或更大的本地DGX系统,使用开源仓库作为模板,将精力集中在领域逻辑上,而不是为新硬件重写代码。
- 采用CUDA Python,实现科学仪器的快速处理和实时引导,并在几秒钟内提取科学见解。
采用加速计算实现实验实时引导的优势
采用加速计算来实现科学实验的实时引导具有诸多优势,包括:
- 弹性可扩展性:由cuPyNumeric和CuPy驱动的相同Python代码,可以在适度的本地集群上不经修改地运行,然后在需要时扩展到百亿亿次级资源或超级计算机节点。
- 更短的分析洞察时间:加速的网络和设备级并行性意味着数据在到达时即被处理,从而在与仪器同步的时间尺度上实现发现、实验引导或事件检测。
- 资源优化:高密度、高能效的DGX Spark节点在紧凑的办公室空间内提供与大型机架级集群相当的性能。
- 统一内存:解锁更高的性能和灵活性,以加速CPU-GPU工作流。借助NVLink C2C,CPU和GPU共享一个单一的虚拟地址空间,用于高达128 GB的大型数据结构,具有极高的带宽、低延迟和并发性。对于基于物理信息的AI,这意味着更简单的代码和更高的持续吞吐量,不受较慢、较高延迟的PCIe链路的限制。
- 协作科学:团队受益于共享数据、分布式计算作业和快速的工作流迭代,这对于多机构研究、实验可重复性和开放科学至关重要。
开始使用加速计算进行科学研究
XANI、cuPyNumeric、更广泛的某机构加速计算栈和CuPy已经在为生产规模的天体物理学和超快X射线科学提供动力。相同的开源Python库和某机构平台可供任何研究人员或开发者采用并集成到自己的工作流中。
XANI、CUDA Python、cuPyNumeric和CuPy展示了科学计算能力在百亿亿次级设施(如鲁宾天文台和LCLS-II)上的代际飞跃。通过将本地桌面级硬件、可扩展的服务器基础设施、可扩展的软件和高性能网络相结合,研究人员可以比以往更快、更灵活地开发、测试和部署大规模数据工作流。无论是分析单次巡天还是协调全球实验,某机构的加速计算都能赋能科学团队实现实时的洞察与发现。FINISHED