SuperAPI AI 工具集

nvalchemi-dynamics-api

编程与开发

查看项目

更新于 10-16 02:34

技能介绍

用途:nvalchemi Dynamics API 提供发现、配置和扩展动力学模拟的工具,支持单 GPU 纵向扩展与多 rank 流水线横向扩展。

主要能力:可从 nvalchemi.dynamics 导入 BaseDynamics、DemoDynamics、FusedStage、DistributedPipeline、ConvergenceHook、Hook、DynamicsStage、SizeAwareSampler、DataSink、GPUBuffer、HostMemory、ZarrData 与 hooks。BaseDynamics 为抽象基类,DemoDynamics 是仅用于测试的 Velocity Verlet 参考实现。

配置运行:用 DemoDynamics(model=model, n_steps=1000, dt=0.5) 创建,配合 AtomicData/Batch 构造输入,调用 dynamics.run(batch)。可用 ConvergenceHook 设置收敛判据(如 fmax、energy_change),或用 ConvergenceHook.from_fmax(threshold=0.05) 简写;也可挂载 MaxForceClampHook、LoggingHook 等 hooks。

扩展方式:FusedStage 用 + 组合多个阶段,单 GPU 每步共享一次模型前向,样本按 status 在阶段间迁移;DistributedPipeline 用 | 组合,各 rank 运行一个阶段,收敛样本发往下一 rank,通信模式有 sync、async_recv(默认)、fully_async。可用 BufferConfig 预分配缓冲区,相邻阶段配置须一致。

Inflight 批处理:SizeAwareSampler 按原子数分箱打包,支持 build_initial_batch、request_replacement 与 exhausted;配合 refill_frequency 在样本收敛后补充新样本。

数据 sink:DataSink 接口含 write/read/zero/drain/is_full 等,实现有 GPUBuffer、HostMemory、ZarrData,可配合 SnapshotHook 使用。

限制:Batch.put() 使用 Warp GPU 内核,仅处理 float32 属性;相邻流水线阶段 BufferConfig 必须相同;无 BufferConfig 时所有收敛样本无约束发送。资料未提供收费、价格与平台信息。