用途:nvMolKit 提供 GPU 加速、批处理的常见 RDKit 操作,API 尽量对齐 RDKit,但以批为单位:接收 rdkit.Chem.Mol 列表或指纹列表,在一个或多个 GPU 上并行处理。适合数千以上分子的大批量任务,关注整批吞吐而非单分子延迟;单分子或无法批处理的工作流仍应使用 RDKit。
主要能力:nvmolkit.fingerprints 的 MorganFingerprintGenerator(radius, fpSize).GetFingerprints(mols);nvmolkit.similarity 的 crossTanimotoSimilarity、crossCosineSimilarity 及 *MemoryConstrained 变体;nvmolkit.embedMolecules 的 EmbedMolecules;nvmolkit.mmffOptimization 与 nvmolkit.uffOptimization 的一次性优化;nvmolkit.batchedForcefield 支持自定义选项与距离/位置/角度/扭转约束;nvmolkit.conformerRmsd、nvmolkit.tfd、nvmolkit.clustering(butina、fused_butina)、nvmolkit.substructure;nvmolkit.types 的 HardwareOptions 与 nvmolkit.autotune(需 optuna)。
使用方式:需 NVIDIA GPU 计算能力 7.0+、CUDA 12.6+ 驱动、支持 CUDA 的 torch。安装前先选定驱动支持的 PyTorch CUDA 后端;uv 可用 uv pip install --torch-backend=cu128 nvmolkit。无 CUDA 时调用会抛错,没有 CPU 回退。结果类型 AsyncGpuResult 异步,用 .torch() 取零拷贝 GPU 张量、.numpy() 同步取 CPU 数组;部分 API 接受 stream 参数。ETKDG 要求 params.useRandomCoords=True,且不支持 bounds matrices、自定义 CPCI、coord maps、分片嵌入等选项;子结构搜索暂不支持手性感知匹配等高级参数。
限制:安装、收费、平台与效果等更多细节资料暂未提供。