grace-runtime 0.1.0__tar.gz → 0.1.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/.github/workflows/cpu-wheels.yml +3 -2
  2. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/.github/workflows/cuda-wheels.yml +1 -0
  3. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/CHANGELOG.md +74 -0
  4. grace_runtime-0.1.2/PKG-INFO +116 -0
  5. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/README.md +17 -12
  6. grace_runtime-0.1.2/docs/benchmarks.md +20 -0
  7. grace_runtime-0.1.2/docs/images/benchmarks-atoms.png +0 -0
  8. grace_runtime-0.1.2/docs/images/benchmarks-time.png +0 -0
  9. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/docs/index.md +10 -2
  10. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/docs/installation.md +25 -8
  11. grace_runtime-0.1.2/docs/lammps.md +257 -0
  12. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/docs/models.md +16 -3
  13. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/docs/torchsim.md +2 -1
  14. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/fused_1l.h +2 -0
  15. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/fused_2l.h +3 -0
  16. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/fused_cpu.h +19 -51
  17. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/csr_images.h +8 -7
  18. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/fused_common.h +5 -44
  19. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_1l_fused_kk.h +9 -0
  20. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_1l_fused_kk_impl.h +68 -16
  21. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_1l_kk.h +3 -2
  22. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_1l_kk_impl.h +15 -2
  23. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_2l_fused_kk.h +20 -0
  24. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_2l_fused_kk_impl.h +154 -47
  25. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_2l_kk.h +20 -2
  26. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_2l_kk_impl.h +48 -43
  27. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/support.h +20 -0
  28. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/model_1l.h +7 -0
  29. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/model_2l.h +15 -2
  30. grace_runtime-0.1.2/libgrace/include/grace/radial_x.h +62 -0
  31. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/fused_1l.cpp +15 -6
  32. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/fused_2l.cpp +17 -7
  33. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/model_1l.cpp +24 -0
  34. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/model_2l.cpp +60 -6
  35. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/model_3l.cpp +2 -0
  36. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/npz3.h +13 -1
  37. grace_runtime-0.1.2/libgrace/src/zero_pad.h +56 -0
  38. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/mkdocs.yml +2 -0
  39. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/pyproject.toml +4 -2
  40. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/_gpu.py +14 -8
  41. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/calculator.py +9 -3
  42. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/cli.py +3 -0
  43. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/models.json +37 -7
  44. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/kk/kk_api.h +2 -0
  45. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/kk/kk_core.cpp +20 -5
  46. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/kk/kk_module.cpp +2 -0
  47. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_gpu_parity.py +44 -2
  48. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_pace.py +3 -2
  49. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_ref_tf.py +16 -7
  50. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_rocm_plugin.py +11 -0
  51. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python-cuda/grace_runtime_cuda12/__init__.py +1 -1
  52. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python-cuda/pyproject.toml +2 -2
  53. grace_runtime-0.1.2/tests/fixtures/grace_1l_small.npz +0 -0
  54. grace_runtime-0.1.2/tests/fixtures/grace_2l_small.npz +0 -0
  55. grace_runtime-0.1.2/tests/fixtures/legacy_1l_wide.npz +0 -0
  56. grace_runtime-0.1.2/tests/fixtures/legacy_2l_small.npz +0 -0
  57. grace_runtime-0.1.2/tests/fixtures/legacy_2l_wide.npz +0 -0
  58. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/kk/test_kk_large.cpp +3 -0
  59. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/test_driver.cpp +38 -0
  60. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/test_model_load.cpp +3 -1
  61. grace_runtime-0.1.0/PKG-INFO +0 -22
  62. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/.github/workflows/release.yml +0 -0
  63. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/.github/workflows/rocm-wheels.yml +0 -0
  64. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/.gitignore +0 -0
  65. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/.readthedocs.yaml +0 -0
  66. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/CMakeLists.txt +0 -0
  67. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/LICENSE.md +0 -0
  68. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/THIRD_PARTY_NOTICES.md +0 -0
  69. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/cmake/GraceHipAtomics.cmake +0 -0
  70. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/cmake/GraceRuntime.cmake +0 -0
  71. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/docs/advanced.md +0 -0
  72. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/docs/api.md +0 -0
  73. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/docs/backends.md +0 -0
  74. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/docs/development.md +0 -0
  75. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/docs/dispersion.md +0 -0
  76. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/docs/hooks/api_reference.py +0 -0
  77. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/docs/pace.md +0 -0
  78. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/docs/properties.md +0 -0
  79. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/docs/relax.md +0 -0
  80. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/docs/requirements.txt +0 -0
  81. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/docs/usage.md +0 -0
  82. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/bonds.h +0 -0
  83. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/cell_list.h +0 -0
  84. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/coupling.h +0 -0
  85. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/cpu_gemm.h +0 -0
  86. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/cpu_simd.h +0 -0
  87. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/d3.h +0 -0
  88. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/d3_params.h +0 -0
  89. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/dispersion.h +0 -0
  90. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/error.h +0 -0
  91. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/fused_3l.h +0 -0
  92. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/fused_3l_cpu.h +0 -0
  93. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/fused_cpu_types.h +0 -0
  94. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/hd.h +0 -0
  95. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/blas.h +0 -0
  96. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/cublas_guard.h +0 -0
  97. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/d3_kk.h +0 -0
  98. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/fused_dense.h +0 -0
  99. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/fused_hip_bonds.h +0 -0
  100. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/g1l_shape_large.h +0 -0
  101. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/g2l_shape_smaxl.h +0 -0
  102. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/g2l_shape_smaxm.h +0 -0
  103. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_3l_fused_kk.h +0 -0
  104. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_3l_kk.h +0 -0
  105. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_3l_kk_cpl.h +0 -0
  106. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_3l_kk_cpl_path.h +0 -0
  107. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_3l_kk_dense.h +0 -0
  108. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_3l_kk_impl.h +0 -0
  109. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_3l_kk_radial.h +0 -0
  110. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_3l_kk_spbf.h +0 -0
  111. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_3l_kk_spbf_mfma.h +0 -0
  112. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/kk_gemm.h +0 -0
  113. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/kk_mfma.h +0 -0
  114. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/neighbors_kk.h +0 -0
  115. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/pace_kk.h +0 -0
  116. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/rocblas_guard.h +0 -0
  117. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/traits.h +0 -0
  118. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/model_3l.h +0 -0
  119. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/model_kind.h +0 -0
  120. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/pace_cpu.h +0 -0
  121. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/pace_embedding.h +0 -0
  122. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/pace_model.h +0 -0
  123. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/pace_radial.h +0 -0
  124. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/pace_tables.h +0 -0
  125. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/system.h +0 -0
  126. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/type_map.h +0 -0
  127. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/uq.h +0 -0
  128. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/uq_head.h +0 -0
  129. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/fused_3l.cpp +0 -0
  130. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/model_kind.cpp +0 -0
  131. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/pace_convert.cpp +0 -0
  132. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/pace_convert.h +0 -0
  133. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/pace_cpu.cpp +0 -0
  134. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/pace_model.cpp +0 -0
  135. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/pace_tables.cpp +0 -0
  136. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/pace_yaml.cpp +0 -0
  137. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/pace_yaml.h +0 -0
  138. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/uq.cpp +0 -0
  139. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/uq_head.cpp +0 -0
  140. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/third_party/d3_data/LICENSE +0 -0
  141. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/third_party/grace_cnpy/LICENSE +0 -0
  142. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/third_party/grace_cnpy/cnpy.cpp +0 -0
  143. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/third_party/grace_cnpy/cnpy.h +0 -0
  144. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/CMakeLists.txt +0 -0
  145. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/LICENSE-libomp +0 -0
  146. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/examples/ase/grace_runtime_ase.ipynb +0 -0
  147. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/examples/phonons/phonons_batch.py +0 -0
  148. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/examples/relax/solute_vacancy_relax.py +0 -0
  149. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/examples/torchsim/_models.py +0 -0
  150. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/examples/torchsim/elastic_batch.py +0 -0
  151. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/examples/torchsim/solute_vacancy_relax.py +0 -0
  152. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/examples/torchsim/temperature_scan.py +0 -0
  153. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/examples/torchsim/uq_md_ensemble.py +0 -0
  154. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/__init__.py +0 -0
  155. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/_core.py +0 -0
  156. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/_cuda.py +0 -0
  157. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/_dispatch.py +0 -0
  158. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/_rocm.py +0 -0
  159. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/batch.py +0 -0
  160. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/dispersion.py +0 -0
  161. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/neighbors.py +0 -0
  162. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/phonons.py +0 -0
  163. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/properties.py +0 -0
  164. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/registry.py +0 -0
  165. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/relax.py +0 -0
  166. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/torchsim.py +0 -0
  167. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/kk/CMakeLists.txt +0 -0
  168. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/kk/kk_core_3l.cpp +0 -0
  169. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/src/core.cpp +0 -0
  170. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/src/dispersion_args.h +0 -0
  171. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/src/exports.map +0 -0
  172. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/src/neighbors.cpp +0 -0
  173. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/src/neighbors.h +0 -0
  174. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/conftest.py +0 -0
  175. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/d3_ref.py +0 -0
  176. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/gate_cells.py +0 -0
  177. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/gpu_tools.py +0 -0
  178. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/model_tools.py +0 -0
  179. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/pace_tools.py +0 -0
  180. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_auto_device.py +0 -0
  181. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_batch.py +0 -0
  182. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_bond_source.py +0 -0
  183. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_calculator.py +0 -0
  184. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_compressed.py +0 -0
  185. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_core.py +0 -0
  186. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_cuda_plugin.py +0 -0
  187. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_d3.py +0 -0
  188. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_dispatch.py +0 -0
  189. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_docs_api.py +0 -0
  190. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_energy_only.py +0 -0
  191. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_examples.py +0 -0
  192. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_gpu_alloc_failure.py +0 -0
  193. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_gpu_batch.py +0 -0
  194. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_gpu_batch_device.py +0 -0
  195. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_gpu_calculator.py +0 -0
  196. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_gpu_chunk.py +0 -0
  197. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_gpu_d3.py +0 -0
  198. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_gpu_memory.py +0 -0
  199. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_gpu_module.py +0 -0
  200. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_gpu_pace.py +0 -0
  201. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_gpu_pace_uq.py +0 -0
  202. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_gpu_properties.py +0 -0
  203. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_gpu_relax.py +0 -0
  204. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_gpu_several_calculators.py +0 -0
  205. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_neighbors.py +0 -0
  206. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_pace_calculator.py +0 -0
  207. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_pace_ctilde.py +0 -0
  208. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_pace_npz.py +0 -0
  209. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_pace_radial.py +0 -0
  210. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_pace_spec.py +0 -0
  211. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_pace_uq.py +0 -0
  212. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_phonons.py +0 -0
  213. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_properties.py +0 -0
  214. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_registry.py +0 -0
  215. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_relax.py +0 -0
  216. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_runtimes.py +0 -0
  217. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_symmetry.py +0 -0
  218. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_torchsim.py +0 -0
  219. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_uq.py +0 -0
  220. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_vs_tp.py +0 -0
  221. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python-cuda/CMakeLists.txt +0 -0
  222. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python-cuda/LICENSE-Kokkos +0 -0
  223. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python-cuda/README.md +0 -0
  224. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/coupling_ref.h +0 -0
  225. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/d3_ref.h +0 -0
  226. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/W2tri.data +0 -0
  227. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/W2tri.npz +0 -0
  228. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/W54.data +0 -0
  229. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/W54.npz +0 -0
  230. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/WMo54.data +0 -0
  231. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/WMo54.npz +0 -0
  232. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/d3_ref.npz +0 -0
  233. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/pace/al_fs_plain.yaml +0 -0
  234. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/pace/au_chebpow_density.yaml +0 -0
  235. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/pace/au_dist_corerep.yaml +0 -0
  236. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/pace/carbon_zbl.yaml +0 -0
  237. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/pace/cells.extxyz +0 -0
  238. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/pace/ethanol_nd1.yaml +0 -0
  239. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/pace/ho_nd5.yaml +0 -0
  240. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/pace/mnbtw_4el.yaml +0 -0
  241. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/pace/ni_lmax6.yaml +0 -0
  242. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/pace/pdh_zbl.yaml +0 -0
  243. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/W2tri_1l.dump +0 -0
  244. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/W2tri_1l.thermo +0 -0
  245. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/W2tri_2l.dump +0 -0
  246. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/W2tri_2l.thermo +0 -0
  247. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/W2tri_3l.dump +0 -0
  248. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/W2tri_3l.thermo +0 -0
  249. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/W54_1l.dump +0 -0
  250. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/W54_1l.thermo +0 -0
  251. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/W54_2l.dump +0 -0
  252. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/W54_2l.thermo +0 -0
  253. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/W54_3l.dump +0 -0
  254. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/W54_3l.thermo +0 -0
  255. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/WMo54_1l.dump +0 -0
  256. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/WMo54_1l.thermo +0 -0
  257. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/WMo54_2l.dump +0 -0
  258. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/WMo54_2l.thermo +0 -0
  259. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/WMo54_3l.dump +0 -0
  260. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/WMo54_3l.thermo +0 -0
  261. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_cpl/WMo54_1l.txt +0 -0
  262. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_cpl/WMo54_2l.txt +0 -0
  263. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_cpl/WMo54_3l.txt +0 -0
  264. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W2tri_1l_fused.dump +0 -0
  265. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W2tri_1l_fused.thermo +0 -0
  266. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W2tri_1l_kk.dump +0 -0
  267. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W2tri_1l_kk.thermo +0 -0
  268. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W2tri_2l_fused.dump +0 -0
  269. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W2tri_2l_fused.thermo +0 -0
  270. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W2tri_2l_kk.dump +0 -0
  271. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W2tri_2l_kk.thermo +0 -0
  272. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W2tri_3l_kk.dump +0 -0
  273. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W2tri_3l_kk.thermo +0 -0
  274. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W54_1l_fused.dump +0 -0
  275. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W54_1l_fused.thermo +0 -0
  276. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W54_1l_kk.dump +0 -0
  277. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W54_1l_kk.thermo +0 -0
  278. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W54_2l_fused.dump +0 -0
  279. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W54_2l_fused.thermo +0 -0
  280. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W54_2l_kk.dump +0 -0
  281. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W54_2l_kk.thermo +0 -0
  282. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W54_3l_kk.dump +0 -0
  283. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W54_3l_kk.thermo +0 -0
  284. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/WMo54_1l_fused.dump +0 -0
  285. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/WMo54_1l_fused.thermo +0 -0
  286. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/WMo54_1l_kk.dump +0 -0
  287. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/WMo54_1l_kk.thermo +0 -0
  288. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/WMo54_2l_fused.dump +0 -0
  289. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/WMo54_2l_fused.thermo +0 -0
  290. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/WMo54_2l_kk.dump +0 -0
  291. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/WMo54_2l_kk.thermo +0 -0
  292. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/WMo54_3l_kk.dump +0 -0
  293. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/WMo54_3l_kk.thermo +0 -0
  294. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/kk/kk_csr_util.h +0 -0
  295. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/kk/test_kk_1l_compile.cpp +0 -0
  296. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/kk/test_kk_2l_compile.cpp +0 -0
  297. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/kk/test_kk_2l_large.cpp +0 -0
  298. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/kk/test_kk_3l_compile.cpp +0 -0
  299. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/kk/test_kk_coupling.cpp +0 -0
  300. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/kk/test_kk_csr.cpp +0 -0
  301. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/kk/test_kk_csr_3l.cpp +0 -0
  302. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/kk/test_kk_d3.cpp +0 -0
  303. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/kk/test_kk_device.cpp +0 -0
  304. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/kk/test_kk_gemm.cpp +0 -0
  305. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/kk/test_kk_launch_check.cpp +0 -0
  306. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/kk/test_kk_neighbors.cpp +0 -0
  307. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/test_bonds.cpp +0 -0
  308. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/test_coupling.cpp +0 -0
  309. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/test_d3.cpp +0 -0
  310. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/test_driver_uq.cpp +0 -0
  311. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/test_error.cpp +0 -0
  312. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/test_gemm.cpp +0 -0
  313. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/test_host_memory.cpp +0 -0
  314. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/test_kernels_compile.cpp +0 -0
  315. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/test_model_kind.cpp +0 -0
  316. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/test_model_limits.cpp +0 -0
  317. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/test_model_shapes.cpp +0 -0
  318. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/test_pace_yaml.cpp +0 -0
  319. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/test_uq.cpp +0 -0
  320. {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/test_util.h +0 -0
@@ -9,6 +9,7 @@ on:
9
9
  workflow_dispatch:
10
10
  pull_request:
11
11
  branches: [dev] # the release pull request
12
+ paths-ignore: [docs/**, '*.md']
12
13
  workflow_call: # from release.yml
13
14
 
14
15
  permissions:
@@ -51,7 +52,7 @@ jobs:
51
52
  matrix:
52
53
  platform:
53
54
  - {artifact: cpu-wheels, os: ubuntu-latest, mamba: linux-64}
54
- - {artifact: cpu-wheels-macos-arm64, os: macos-14, mamba: osx-arm64}
55
+ - {artifact: cpu-wheels-macos-arm64, os: macos-15, mamba: osx-arm64}
55
56
  runs-on: ${{ matrix.platform.os }}
56
57
  timeout-minutes: 120
57
58
  steps:
@@ -80,7 +81,7 @@ jobs:
80
81
  matrix:
81
82
  platform:
82
83
  - {artifact: cpu-wheels, os: ubuntu-latest, mamba: linux-64}
83
- - {artifact: cpu-wheels-macos-arm64, os: macos-14, mamba: osx-arm64}
84
+ - {artifact: cpu-wheels-macos-arm64, os: macos-15, mamba: osx-arm64}
84
85
  python: ["3.10", "3.11", "3.12", "3.13"]
85
86
  runs-on: ${{ matrix.platform.os }}
86
87
  timeout-minutes: 120
@@ -10,6 +10,7 @@ on:
10
10
  workflow_dispatch:
11
11
  pull_request:
12
12
  branches: [dev] # the release pull request
13
+ paths-ignore: [docs/**, '*.md']
13
14
  workflow_call: # from release.yml
14
15
 
15
16
  permissions:
@@ -3,6 +3,80 @@
3
3
  Notable changes of grace-runtime, grace-runtime-cuda12 and grace-runtime-rocm6 (they share one version). Each
4
4
  release has a section "Changed defaults" when a default behaves differently.
5
5
 
6
+ ## [0.1.2](https://github.com/ICAMS/grace-runtime/releases/tag/0.1.2) (2026-11-01)
7
+
8
+ The early GRACE-1L/2L models, and fast GPU kernels for more GRACE-1L/2L fits.
9
+
10
+ ### Added
11
+
12
+ - **Early GRACE-1L/2L models:** GRACE-1L-OAM, GRACE-1L-OMAT, GRACE-2L-OAM and GRACE-2L-OMAT (and their older aliases)
13
+ are in the registry and run on the CPU, NVIDIA and AMD GPUs, in Python and in LAMMPS, without an uncertainty head.
14
+ Own fits of the early GRACE-1L/2L presets run as well: tensorpotential exports them as `kokkos.npz` format 2.
15
+ - **More GRACE-1L/2L fits on the fast GPU kernels.** A fit whose layers are narrower than compiled GPU kernels runs
16
+ zero-padded to them, with the same results and a warning that names the widths (not models with an uncertainty
17
+ head). GRACE-2L has kernels for the widths of the current registry models, of the early ones, and of fits with 48
18
+ layer-2 radial channels; GRACE-1L fits run with up to 64 radial channels. The models guide lists the widths.
19
+ - `GRACE_GENERIC_KERNELS=1`: a GRACE-2L fit wider than all compiled GPU kernels runs on generic GPU kernels, several
20
+ times slower, with a warning. Without the variable such a fit stops with an error that names its widths.
21
+
22
+ ### LAMMPS (`grace-runtime` branch of the LAMMPS fork)
23
+
24
+ - `grace/runtime` and `grace/runtime/kk` run the early GRACE-1L/2L models and own fits of their presets. The Kokkos
25
+ style pads narrower fits like Python does, and with `GRACE_GENERIC_KERNELS=1` runs wider GRACE-2L fits on the
26
+ generic GPU kernels. Warnings appear as LAMMPS `WARNING` lines.
27
+
28
+ ### Documentation
29
+
30
+ - Benchmarks: H200, MI250X, L40S and CPU charts; the front page shows the execution speed.
31
+ - Models: which fits run on the fast GPU kernels, padded or not, and `GRACE_GENERIC_KERNELS`.
32
+
33
+ ### Changed defaults
34
+
35
+ - A GRACE-1L/2L model without GPU kernels of its own widths stopped with an error on a GPU. A narrower one now runs
36
+ zero-padded with a warning; a wider GRACE-2L one still stops, and the error names `GRACE_GENERIC_KERNELS=1`.
37
+ - `device="auto"`: such a wider GRACE-2L model raises instead of running on the CPU.
38
+ - `kokkos.npz` format version 2 for the early GRACE-1L/2L layouts. grace-runtime 0.1.1 and older refuse these files
39
+ and ask for an update. Files of current models stay format 1.
40
+ - The GPU modules of `grace-runtime-cuda12` / `grace-runtime-rocm6` 0.1.2 have interface version 7; grace-runtime
41
+ 0.1.2 refuses older modules. The packages pin each other, so a normal `pip install` matches them.
42
+
43
+ ## [0.1.1](https://github.com/ICAMS/grace-runtime/releases/tag/0.1.1) (2026-10-29)
44
+
45
+ Bug fixes and documentation.
46
+
47
+ ### Fixed
48
+
49
+ - NVIDIA and AMD GPUs: GRACE-1L with 33.5 million atoms (2^25) or more stopped the whole process instead of running.
50
+ It now runs up to the GPU memory (A100 80 GB: 41 million atoms) and beyond that raises the usual "does not fit the
51
+ GPU memory" error.
52
+ - The PyPI page of `grace-runtime` shows the README.
53
+ - macOS: `pip install "grace-runtime[torchsim]"` installed PyTorch from PyPI, whose OpenMP runtime clashes with the
54
+ one of grace-runtime (`OMP: Error #15`). On macOS the extra now installs nothing; install PyTorch from conda-forge
55
+ (see the installation guide).
56
+ - macOS: `grace-runtime info` says that the GPU modules are Linux-only, instead of listing where it looked for the
57
+ NVIDIA driver.
58
+
59
+ ### LAMMPS (`grace-runtime` branch of the LAMMPS fork)
60
+
61
+ - CPU styles: `GRACE_BLAS=AUTO` uses a BLAS only if it is MKL, OpenBLAS, BLIS or Accelerate, otherwise the built-in
62
+ kernel. Other BLAS libraries (for example ATLAS) made GRACE-3L about 4x slower, and on HPE Cray systems the BLAS
63
+ linked by the compiler made the link fail.
64
+ - CMake warns when the CPU styles are built with GCC older than 12: with GCC 11 GRACE-3L runs about 37 % slower,
65
+ with GCC 9 GRACE-1L about 4.6x and GRACE-3L about 6.6x slower.
66
+
67
+ ### Documentation
68
+
69
+ - LAMMPS guide: build the fork for CPU, NVIDIA and AMD GPUs (with an example for LUMI), get a model, and run a first
70
+ input that also prints the extrapolation grade.
71
+ - Windows through WSL2; GCC 12 or newer for source builds.
72
+ - Benchmarks: time per atom and the largest system per GPU (L40S, A100, MI250X), and time per atom on a CPU.
73
+
74
+ ### Changed defaults
75
+
76
+ - LAMMPS `GRACE_BLAS=AUTO` (see above): with a BLAS other than MKL, OpenBLAS, BLIS or Accelerate the CPU styles use
77
+ the built-in kernel. `-D GRACE_BLAS=ON` uses any BLAS that provides `cblas_sgemm`.
78
+ - macOS: the `torchsim` extra installs no packages.
79
+
6
80
  ## [0.1.0](https://github.com/ICAMS/grace-runtime/releases/tag/0.1.0) (2026-10-29)
7
81
 
8
82
  First release on PyPI: `grace-runtime` (CPU), `grace-runtime-cuda12` (NVIDIA) and `grace-runtime-rocm6` (AMD). It
@@ -0,0 +1,116 @@
1
+ Metadata-Version: 2.2
2
+ Name: grace-runtime
3
+ Version: 0.1.2
4
+ Summary: Fast CPU and GPU inference of GRACE and PACE interatomic potentials with ASE, batching and TorchSim
5
+ License: Academic Software License (ASL); bundled third-party code: see THIRD_PARTY_NOTICES.md
6
+ Classifier: License :: Other/Proprietary License
7
+ Project-URL: Homepage, https://github.com/ICAMS/grace-runtime
8
+ Project-URL: Issues, https://github.com/ICAMS/grace-runtime/issues
9
+ Requires-Python: >=3.10
10
+ Requires-Dist: numpy
11
+ Requires-Dist: ase
12
+ Requires-Dist: tqdm
13
+ Requires-Dist: spglib>=2.5
14
+ Provides-Extra: torchsim
15
+ Requires-Dist: torch>=2; python_version >= "3.12" and sys_platform != "darwin" and extra == "torchsim"
16
+ Requires-Dist: torch-sim-atomistic>=0.6; python_version >= "3.12" and sys_platform != "darwin" and extra == "torchsim"
17
+ Provides-Extra: phonons
18
+ Requires-Dist: phonopy>=2.20; extra == "phonons"
19
+ Provides-Extra: test
20
+ Requires-Dist: pytest; extra == "test"
21
+ Requires-Dist: pyyaml; extra == "test"
22
+ Description-Content-Type: text/markdown
23
+
24
+ # grace-runtime
25
+
26
+ Fast, efficient execution of GRACE-1L, GRACE-2L and GRACE-3L interatomic potentials without TensorFlow, PyTorch or JAX.
27
+ CPU execution is standalone; GPU execution uses Kokkos for NVIDIA CUDA and AMD HIP.
28
+ Use ASE-compatible calculators, batch processing, an optional TorchSim adapter or the shared kernels in LAMMPS with MPI.
29
+ PACE (ACE) potentials fitted with pacemaker run from their `.yaml` ([PACE models](https://github.com/ICAMS/grace-runtime/blob/master/docs/pace.md)).
30
+
31
+ One call computes energy, forces and stress. On one NVIDIA H200 that takes about 1 µs per atom for GRACE-1L,
32
+ 3.5 µs for GRACE-2L and 13 µs for GRACE-3L (large OMAT models); a 16-core Xeon is 5 to 13 times slower.
33
+ [Benchmarks](https://github.com/ICAMS/grace-runtime/blob/master/docs/benchmarks.md) gives the setup and the largest system per GPU.
34
+
35
+ ![Time per atom for GRACE-1L, 2L and 3L on NVIDIA H200, AMD MI250X, NVIDIA L40S and a 16-core Xeon](https://raw.githubusercontent.com/ICAMS/grace-runtime/master/docs/images/benchmarks-time.png)
36
+
37
+ **[Read the manual](https://github.com/ICAMS/grace-runtime/blob/master/docs/index.md)** · [Installation](https://github.com/ICAMS/grace-runtime/blob/master/docs/installation.md) · [API reference](https://github.com/ICAMS/grace-runtime/blob/master/docs/api.md)
38
+
39
+ ## Install
40
+
41
+ Install one package from PyPI ([source builds](https://github.com/ICAMS/grace-runtime/blob/master/docs/installation.md#cpu-from-source) for other targets):
42
+
43
+ | Backend | Install |
44
+ | --- | --- |
45
+ | CPU | `pip install grace-runtime` |
46
+ | NVIDIA | `pip install "grace-runtime-cuda12[cublas]"` |
47
+ | AMD | `pip install grace-runtime-rocm6` |
48
+
49
+ GPU packages install the matching CPU package automatically.
50
+ See the manual for [GPU requirements](https://github.com/ICAMS/grace-runtime/blob/master/docs/backends.md) and [environment setup](https://github.com/ICAMS/grace-runtime/blob/master/docs/installation.md#python-environment).
51
+
52
+ ## First calculation
53
+
54
+ ```python
55
+ from ase.build import bulk
56
+ from grace_runtime import GRACERuntimeCalculator
57
+
58
+ atoms = bulk("W", "bcc", a=3.165, cubic=True)
59
+ atoms.calc = GRACERuntimeCalculator("GRACE-2L-OMAT-medium-ft-E")
60
+ print(atoms.get_potential_energy()) # eV
61
+ print(atoms.get_forces()) # eV/Å; reuses the calculation above
62
+ print(atoms.calc.backend)
63
+ ```
64
+
65
+ Device and CPU-thread selection are automatic. Energy, forces and stress are computed together and cached.
66
+ Named models download on first use; local `kokkos.npz` files work too.
67
+
68
+ ## Guides
69
+
70
+ The [manual](https://github.com/ICAMS/grace-runtime/blob/master/docs/index.md#guides) covers [batching and MD](https://github.com/ICAMS/grace-runtime/blob/master/docs/usage.md), [relaxation](https://github.com/ICAMS/grace-runtime/blob/master/docs/relax.md),
71
+ [properties](https://github.com/ICAMS/grace-runtime/blob/master/docs/properties.md), [dispersion](https://github.com/ICAMS/grace-runtime/blob/master/docs/dispersion.md), [PACE models](https://github.com/ICAMS/grace-runtime/blob/master/docs/pace.md), [TorchSim](https://github.com/ICAMS/grace-runtime/blob/master/docs/torchsim.md) and
72
+ [development](https://github.com/ICAMS/grace-runtime/blob/master/docs/development.md). An interactive tour is in the [ASE notebook](https://github.com/ICAMS/grace-runtime/blob/master/python/examples/ase/grace_runtime_ase.ipynb).
73
+
74
+ ## LAMMPS
75
+
76
+ The [LAMMPS fork](https://github.com/yury-lysogorskiy/lammps/tree/grace-runtime) supplies pair styles
77
+ `grace/runtime` (CPU) and `grace/runtime/kk` (GPU), which take the GRACE-1L / 2L / 3L model from the `kokkos.npz` given to
78
+ `pair_coeff`, and `pace/runtime(/kk)` for PACE models. Installing the Python package does not install LAMMPS:
79
+ [build and run it](https://github.com/ICAMS/grace-runtime/blob/master/docs/lammps.md).
80
+
81
+ ## Licence
82
+
83
+ Academic Software Licence (ASL, [LICENSE.md](https://github.com/ICAMS/grace-runtime/blob/master/LICENSE.md)): academic non-commercial use. For commercial use contact
84
+ ACEworks GmbH, contact@aceworks.works. Bundled third-party code keeps its own licence
85
+ ([THIRD_PARTY_NOTICES.md](https://github.com/ICAMS/grace-runtime/blob/master/THIRD_PARTY_NOTICES.md)). Changes: [CHANGELOG.md](https://github.com/ICAMS/grace-runtime/blob/master/CHANGELOG.md).
86
+
87
+ ## Reference
88
+
89
+ Please cite:
90
+
91
+ * Y. Lysogorskiy, A. Bochkarev, R. Drautz, Graph atomic cluster expansion for foundational machine learning interatomic
92
+ potentials. npj Computational Materials 12(1), 114 (2026), https://www.nature.com/articles/s41524-026-01979-1
93
+ * For UQ (extrapolation grade `gamma`): Y. Lysogorskiy, A. Bochkarev, R. Drautz, A latent-space extrapolation grade
94
+ built into graph atomic cluster expansion foundation potentials. arXiv:2609.40060 (2026),
95
+ https://arxiv.org/abs/2609.40060
96
+ * A. Bochkarev, Y. Lysogorskiy, R. Drautz, Graph Atomic Cluster Expansion for Semilocal Interactions beyond Equivariant
97
+ Message Passing. Phys. Rev. X 14, 021036 (2024), https://doi.org/10.1103/PhysRevX.14.021036
98
+
99
+ ```bibtex
100
+ @article{lysogorskiy2026graph,
101
+ title={Graph atomic cluster expansion for foundational machine learning interatomic potentials},
102
+ author={Lysogorskiy, Yury and Bochkarev, Anton and Drautz, Ralf},
103
+ journal={npj Computational Materials}, volume={12}, number={1}, pages={114}, year={2026},
104
+ doi={10.1038/s41524-026-01979-1}
105
+ }
106
+ @article{lysogorskiy2026calm,
107
+ title={A latent-space extrapolation grade built into graph atomic cluster expansion foundation potentials},
108
+ author={Lysogorskiy, Yury and Bochkarev, Anton and Drautz, Ralf},
109
+ journal={arXiv preprint arXiv:2609.40060}, year={2026}
110
+ }
111
+ @article{PhysRevX.14.021036,
112
+ title={Graph Atomic Cluster Expansion for Semilocal Interactions beyond Equivariant Message Passing},
113
+ author={Bochkarev, Anton and Lysogorskiy, Yury and Drautz, Ralf},
114
+ journal={Phys. Rev. X}, volume={14}, pages={021036}, year={2024}, doi={10.1103/PhysRevX.14.021036}
115
+ }
116
+ ```
@@ -3,14 +3,19 @@
3
3
  Fast, efficient execution of GRACE-1L, GRACE-2L and GRACE-3L interatomic potentials without TensorFlow, PyTorch or JAX.
4
4
  CPU execution is standalone; GPU execution uses Kokkos for NVIDIA CUDA and AMD HIP.
5
5
  Use ASE-compatible calculators, batch processing, an optional TorchSim adapter or the shared kernels in LAMMPS with MPI.
6
- PACE (ACE) potentials fitted with pacemaker run from their `.yaml` ([PACE models](docs/pace.md)).
6
+ PACE (ACE) potentials fitted with pacemaker run from their `.yaml` ([PACE models](https://github.com/ICAMS/grace-runtime/blob/master/docs/pace.md)).
7
7
 
8
- **[Read the manual](docs/index.md)** · [Installation](docs/installation.md) · [API reference](docs/api.md)
8
+ One call computes energy, forces and stress. On one NVIDIA H200 that takes about 1 µs per atom for GRACE-1L,
9
+ 3.5 µs for GRACE-2L and 13 µs for GRACE-3L (large OMAT models); a 16-core Xeon is 5 to 13 times slower.
10
+ [Benchmarks](https://github.com/ICAMS/grace-runtime/blob/master/docs/benchmarks.md) gives the setup and the largest system per GPU.
11
+
12
+ ![Time per atom for GRACE-1L, 2L and 3L on NVIDIA H200, AMD MI250X, NVIDIA L40S and a 16-core Xeon](https://raw.githubusercontent.com/ICAMS/grace-runtime/master/docs/images/benchmarks-time.png)
13
+
14
+ **[Read the manual](https://github.com/ICAMS/grace-runtime/blob/master/docs/index.md)** · [Installation](https://github.com/ICAMS/grace-runtime/blob/master/docs/installation.md) · [API reference](https://github.com/ICAMS/grace-runtime/blob/master/docs/api.md)
9
15
 
10
16
  ## Install
11
17
 
12
- **Runtime packages are not yet released on PyPI; current packages are placeholders.**
13
- For now, [install from source](docs/installation.md#cpu-from-source). Once published, choose one package:
18
+ Install one package from PyPI ([source builds](https://github.com/ICAMS/grace-runtime/blob/master/docs/installation.md#cpu-from-source) for other targets):
14
19
 
15
20
  | Backend | Install |
16
21
  | --- | --- |
@@ -19,7 +24,7 @@ For now, [install from source](docs/installation.md#cpu-from-source). Once publi
19
24
  | AMD | `pip install grace-runtime-rocm6` |
20
25
 
21
26
  GPU packages install the matching CPU package automatically.
22
- See the manual for [GPU requirements](docs/backends.md) and [environment setup](docs/installation.md#python-environment).
27
+ See the manual for [GPU requirements](https://github.com/ICAMS/grace-runtime/blob/master/docs/backends.md) and [environment setup](https://github.com/ICAMS/grace-runtime/blob/master/docs/installation.md#python-environment).
23
28
 
24
29
  ## First calculation
25
30
 
@@ -39,22 +44,22 @@ Named models download on first use; local `kokkos.npz` files work too.
39
44
 
40
45
  ## Guides
41
46
 
42
- The [manual](docs/index.md#guides) covers [batching and MD](docs/usage.md), [relaxation](docs/relax.md),
43
- [properties](docs/properties.md), [dispersion](docs/dispersion.md), [PACE models](docs/pace.md), [TorchSim](docs/torchsim.md) and
44
- [development](docs/development.md). An interactive tour is in the [ASE notebook](python/examples/ase/grace_runtime_ase.ipynb).
47
+ The [manual](https://github.com/ICAMS/grace-runtime/blob/master/docs/index.md#guides) covers [batching and MD](https://github.com/ICAMS/grace-runtime/blob/master/docs/usage.md), [relaxation](https://github.com/ICAMS/grace-runtime/blob/master/docs/relax.md),
48
+ [properties](https://github.com/ICAMS/grace-runtime/blob/master/docs/properties.md), [dispersion](https://github.com/ICAMS/grace-runtime/blob/master/docs/dispersion.md), [PACE models](https://github.com/ICAMS/grace-runtime/blob/master/docs/pace.md), [TorchSim](https://github.com/ICAMS/grace-runtime/blob/master/docs/torchsim.md) and
49
+ [development](https://github.com/ICAMS/grace-runtime/blob/master/docs/development.md). An interactive tour is in the [ASE notebook](https://github.com/ICAMS/grace-runtime/blob/master/python/examples/ase/grace_runtime_ase.ipynb).
45
50
 
46
51
  ## LAMMPS
47
52
 
48
53
  The [LAMMPS fork](https://github.com/yury-lysogorskiy/lammps/tree/grace-runtime) supplies pair styles
49
54
  `grace/runtime` (CPU) and `grace/runtime/kk` (GPU), which take the GRACE-1L / 2L / 3L model from the `kokkos.npz` given to
50
- `pair_coeff`, and `pace/runtime(/kk)` for PACE models. Follow that repository's build instructions; installing the
51
- Python package does not install LAMMPS.
55
+ `pair_coeff`, and `pace/runtime(/kk)` for PACE models. Installing the Python package does not install LAMMPS:
56
+ [build and run it](https://github.com/ICAMS/grace-runtime/blob/master/docs/lammps.md).
52
57
 
53
58
  ## Licence
54
59
 
55
- Academic Software Licence (ASL, [LICENSE.md](LICENSE.md)): academic non-commercial use. For commercial use contact
60
+ Academic Software Licence (ASL, [LICENSE.md](https://github.com/ICAMS/grace-runtime/blob/master/LICENSE.md)): academic non-commercial use. For commercial use contact
56
61
  ACEworks GmbH, contact@aceworks.works. Bundled third-party code keeps its own licence
57
- ([THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)). Changes: [CHANGELOG.md](CHANGELOG.md).
62
+ ([THIRD_PARTY_NOTICES.md](https://github.com/ICAMS/grace-runtime/blob/master/THIRD_PARTY_NOTICES.md)). Changes: [CHANGELOG.md](https://github.com/ICAMS/grace-runtime/blob/master/CHANGELOG.md).
58
63
 
59
64
  ## Reference
60
65
 
@@ -0,0 +1,20 @@
1
+ # Benchmarks
2
+
3
+ How fast grace-runtime evaluates the GRACE foundation models, and how many atoms fit on one GPU.
4
+
5
+ ![Time per atom for GRACE-1L, 2L and 3L on NVIDIA H200, AMD MI250X, NVIDIA L40S and a 16-core Xeon](images/benchmarks-time.png)
6
+
7
+ ![Largest system on one GPU for GRACE-1L, 2L and 3L on NVIDIA H200, AMD MI250X and NVIDIA L40S](images/benchmarks-atoms.png)
8
+
9
+ ## How we measured
10
+
11
+ | | |
12
+ |---|---|
13
+ | Models | GRACE-1L-OMAT-large-base, GRACE-2L-OMAT-large-base, GRACE-3L-OMAT-large (cutoff 6 Å) |
14
+ | System | bcc crystal (a = 3.165 Å) with 25 elements (Al to Os) in random order, atoms displaced by about 0.02 Å; about 58 neighbours per atom |
15
+ | Calculation | `GRACERuntimeCalculator` with default settings; each call computes energy, forces and stress |
16
+ | Time per atom | median of 3 calls after the first; the lowest value over system sizes from about 1000 atoms up. It changes little above about 16000 atoms (GPU) or 2000 atoms (CPU). H200: lowest of 31,250 and 128,000 atoms |
17
+ | Largest system | double the number of atoms until a structure does not fit the GPU memory, then bisect; the largest structure that runs, each size in a new process |
18
+ | GPUs | NVIDIA H200 NVL 141 GB, NVIDIA L40S 48 GB, AMD Instinct MI250X: one GCD (half of the card) with 64 GB |
19
+ | CPU | Intel Xeon Gold 6526Y (16 cores per socket); 16 threads on one socket (`OMP_NUM_THREADS`) |
20
+ | Software | grace-runtime 0.1 wheels from PyPI (`grace-runtime`, `grace-runtime-cuda12`, `grace-runtime-rocm6`) |
@@ -4,6 +4,12 @@ Run GRACE-1L, GRACE-2L and GRACE-3L interatomic potentials on CPU or GPU without
4
4
  CPU execution is standalone; GPU execution uses Kokkos for NVIDIA CUDA and AMD HIP.
5
5
  The kernels also run in LAMMPS, with MPI support.
6
6
 
7
+ One call computes energy, forces and stress. On one NVIDIA H200 that takes about 1 µs per atom for GRACE-1L,
8
+ 3.5 µs for GRACE-2L and 13 µs for GRACE-3L (large OMAT models); a 16-core Xeon is 5 to 13 times slower.
9
+ [Benchmarks](benchmarks.md) gives the setup and the largest system per GPU.
10
+
11
+ ![Time per atom for GRACE-1L, 2L and 3L on NVIDIA H200, AMD MI250X, NVIDIA L40S and a 16-core Xeon](images/benchmarks-time.png)
12
+
7
13
  Start with [installation](installation.md), then try a calculation below.
8
14
  The optional TorchSim adapter requires PyTorch and TorchSim.
9
15
 
@@ -48,7 +54,9 @@ print([r["energy"] for r in results])
48
54
  | Add DFT-D3 | [Dispersion](dispersion.md) |
49
55
  | Run PACE (ACE) models from pacemaker `.yaml` | [PACE models](pace.md) |
50
56
  | Use TorchSim integrators and optimizers | [TorchSim](torchsim.md) |
57
+ | Build LAMMPS and run GRACE or PACE in it | [LAMMPS](lammps.md) |
51
58
  | Manage memory, threads and fallbacks | [Performance and diagnostics](advanced.md) |
59
+ | See speed and the largest systems per GPU | [Benchmarks](benchmarks.md) |
52
60
  | Look up parameters, defaults, CLI and results | [API reference](api.md) |
53
61
  | Build and test | [Development](development.md) |
54
62
 
@@ -56,5 +64,5 @@ print([r["energy"] for r in results])
56
64
 
57
65
  The [LAMMPS fork](https://github.com/yury-lysogorskiy/lammps/tree/grace-runtime) supplies pair styles
58
66
  `grace/runtime` (CPU) and `grace/runtime/kk` (GPU) for GRACE-1L / 2L / 3L models (`kokkos.npz`), and
59
- `pace/runtime` / `pace/runtime/kk` for [PACE models](pace.md). Follow that repository's build instructions;
60
- installing the Python package does not install LAMMPS.
67
+ `pace/runtime` / `pace/runtime/kk` for [PACE models](pace.md). Installing the Python package does not install
68
+ LAMMPS: [LAMMPS](lammps.md) shows how to build it (CPU, CUDA, HIP) and run a first input.
@@ -2,9 +2,6 @@
2
2
 
3
3
  [Manual](index.md) · [GPU requirements](backends.md)
4
4
 
5
- **Runtime packages are not yet released on PyPI; current packages are placeholders.**
6
- The package commands below apply once published. For now, use [source installation](#cpu-from-source).
7
-
8
5
  ## Python environment
9
6
 
10
7
  We recommend [micromamba](https://mamba.readthedocs.io/en/latest/installation/micromamba-installation.html)
@@ -19,7 +16,7 @@ micromamba activate grace-runtime
19
16
 
20
17
  | Backend | Install | Wheel requirements |
21
18
  | --- | --- | --- |
22
- | CPU | `pip install grace-runtime` | Linux x86-64 (AVX2/FMA); macOS arm64 (Apple M1 and newer) |
19
+ | CPU | `pip install grace-runtime` | Linux x86-64 (AVX2/FMA), also [WSL2 on Windows](#windows); macOS arm64 (Apple M1 and newer) |
23
20
  | NVIDIA CUDA 12 | `pip install "grace-runtime-cuda12[cublas]"` | Linux x86-64, compatible NVIDIA driver |
24
21
  | AMD ROCm 6 | `pip install grace-runtime-rocm6` | Linux x86-64, system ROCm 6.2+ |
25
22
 
@@ -40,11 +37,26 @@ grace-runtime info
40
37
  Then run the [first calculation](index.md#first-calculation). If a visible GPU cannot run natively,
41
38
  `grace-runtime info` returns 1; see [backend diagnostics](advanced.md#backend-diagnostics).
42
39
 
40
+ ## Windows
41
+
42
+ Native Windows is not supported yet. Use [WSL2](https://learn.microsoft.com/windows/wsl/install) (Windows 10 or 11)
43
+ with an Ubuntu distribution, and install the Linux packages inside it:
44
+
45
+ ```bash
46
+ pip install grace-runtime # CPU
47
+ pip install "grace-runtime-cuda12[cublas]" # NVIDIA GPU
48
+ grace-runtime info
49
+ ```
50
+
51
+ NVIDIA GPUs work through the Windows NVIDIA driver ([CUDA on WSL](https://docs.nvidia.com/cuda/wsl-user-guide/)):
52
+ install the driver on Windows only, not inside WSL. `grace-runtime info` shows whether the GPU is visible.
53
+
43
54
  ## Build from source
44
55
 
45
56
  ### CPU from source
46
57
 
47
- If needed, install a compiler with C++17 and OpenMP support:
58
+ If needed, install a compiler with C++17 and OpenMP support. Use GCC 12 or newer: older GCC builds much slower CPU
59
+ kernels (with GCC 11 GRACE-3L about 37 % slower, with GCC 9 up to 6.6x slower).
48
60
 
49
61
  ```bash
50
62
  micromamba install -c conda-forge cxx-compiler
@@ -67,8 +79,13 @@ micromamba install -c conda-forge llvm-openmp
67
79
  ```
68
80
 
69
81
  The macOS wheel ships its OpenMP runtime and shares it with conda-forge packages in the same process (NumPy, PyTorch).
70
- PyTorch from PyPI ships its own, and the two abort with `OMP: Error #15`: for TorchSim on macOS, use conda-forge
71
- PyTorch, which shares the environment's OpenMP runtime.
82
+ PyTorch from PyPI ships its own, and the two abort with `OMP: Error #15`. So on macOS the `torchsim` extra installs
83
+ nothing; install PyTorch from conda-forge, which shares the environment's OpenMP runtime, and then TorchSim:
84
+
85
+ ```bash
86
+ micromamba install -c conda-forge pytorch
87
+ pip install grace-runtime torch-sim-atomistic
88
+ ```
72
89
 
73
90
  ### GPU source builds
74
91
 
@@ -81,7 +98,7 @@ For editable installs and library tests, see [development](development.md).
81
98
  | Feature | Install |
82
99
  | --- | --- |
83
100
  | Phonons | `pip install "grace-runtime[phonons]"` |
84
- | TorchSim adapter (Python >= 3.12; on a CUDA 12 driver torch from the CUDA 12 index, see [TorchSim](torchsim.md)) | `pip install "grace-runtime[torchsim]"` |
101
+ | TorchSim adapter (Python >= 3.12; on a CUDA 12 driver torch from the CUDA 12 index, see [TorchSim](torchsim.md); on macOS see [macOS](#macos)) | `pip install "grace-runtime[torchsim]"` |
85
102
  | Tests | `pip install "grace-runtime[test]"` |
86
103
  | cuBLAS for the NVIDIA package (GRACE-3L up to ~15 % faster, UQ slightly faster) | `pip install "grace-runtime-cuda12[cublas]"` |
87
104