用途:nvMolKit 提供 GPU 加速、批处理的常用 RDKit 操作,API 尽可能对齐 RDKit,但以批为单位:输入 list[rdkit.Chem.Mol] 或指纹列表,在一个或多个 GPU 上并行处理,输入输出均为真实 RDKit Mol 对象。适合数千以上分子的大批量任务,关注整体吞吐而非单分子延迟。构建源码不在本技能范围。
主要能力与入口:nvmolkit.fingerprints 的 MorganFingerprintGenerator(radius, fpSize).GetFingerprints(mols);nvmolkit.similarity 的 crossTanimotoSimilarity、crossCosineSimilarity 及 *MemoryConstrained 变体;nvmolkit.embedMolecules 的 EmbedMolecules;nvmolkit.mmffOptimization 与 nvmolkit.uffOptimization 的一次性优化;nvmolkit.batchedForcefield 的 MMFFBatchedForcefield/UFFBatchedForcefield(支持距离、位置、角度、二面角约束);nvmolkit.conformerRmsd、nvmolkit.tfd、nvmolkit.clustering(butina、fused_butina、aap_dise)、nvmolkit.substructure、nvmolkit.mcs;nvmolkit.types 的 HardwareOptions 与 nvmolkit.autotune(需 optuna)。
用法要点:先跑冒烟测试确认 nvmolkit 版本、torch.cuda.is_available 与设备数,失败应查安装指南。AsyncGpuResult 为异步,.torch() 返回零拷贝 GPU 张量需自行同步,.numpy() 会同步并拷回 CPU。指纹等 API 可传 stream 参数;ETKDG、MMFF/UFF、TFD、子结构、MCS 为同步。CoordinateOutput.DEVICE 返回 Device3DResult,可避免主机往返。MCSBatchResult 结果按 pair 位置索引。
要求:NVIDIA GPU 计算能力 7.0+,CUDA 驱动兼容 12.6+,带 CUDA 的 torch;安装时需先选驱动支持的 PyTorch CUDA 后端。限制:必须 CUDA,无 CPU 回退;单分子任务宜用 RDKit;ETKDG 不支持自定义边界矩阵等;子结构搜索不支持手性等高级参数。