RDKit 2026.3 support and minor bug fix#172
Conversation
ONe of the assertions in the memory free test was incorrect, due to memory caching, one can potentially allocate device memory without an exact corresponding increase in observed memory usage. STream order bug was latent, I think recent changes to constraints have exposed it, but it predates v0.5
|
| Filename | Overview |
|---|---|
| cmake/boost.cmake | Removes system from Boost link targets; correct since Boost.System has been header-only since 1.67 and Boost 1.90 dropped the CMake target entirely. |
| nvmolkit/tests/test_types.py | Removes the flaky test_async_gpu_result_release_frees_memory test that was unreliable due to CUDA memory pooling; remaining tests are unaffected. |
| src/minimizer/bfgs_mmff.cpp | Fixes stream-ordering bug: setStreams now runs before sendContribsAndIndicesToDevice, ensuring all device work uses the correct CUDA stream. |
| src/minimizer/bfgs_minimize.cu | Adds version-conditioned gradient scaling (fabs vs. signed) to match RDKit 2025.09 behavior; kRdkitHasGradScaleFix is duplicated in the permol-kernels file. |
| src/minimizer/bfgs_minimize_permol_kernels.cu | Mirrors the gradient-scaling version guard from bfgs_minimize.cu; the constant is defined twice rather than being centralized in versions.h. |
| src/tfd/tfd_common.cpp | Replaces hardcoded RDKit beta-typo replication with a compile-time version check; correctly reproduces both old and new logic for respective RDKit releases. |
| src/CMakeLists.txt | Introduces nvmolkit_versions INTERFACE library exposing the generated versions.h, threading it into embedder_utils instead of a per-target include_directories. |
| src/minimizer/CMakeLists.txt | Adds nvmolkit_versions to the bfgs private link libraries so version macros are available in minimizer CUDA sources. |
| src/tfd/CMakeLists.txt | Adds nvmolkit_versions to tfd_cpu private link libraries; straightforward dependency addition. |
Reviews (1): Last reviewed commit: "Formatting" | Re-trigger Greptile
Removed system from boost targets. It's been header only since 1.67, so the target isn't needed as long as the include dir is right. Boost 1.90 (rdkit links to this) dropped system from their targets so it was a compile issue.
Fixed a stream ordering bug in MMFF. It was latent, I think our recent constraint code caused it to be hit, but did not cause the issue directly.
Track RDKit version to match results for multiple bug fixes.
Remove flaky memory test. Due to memory pooling/caching, it was never reliably correct.