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.
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/.github/workflows/cpu-wheels.yml +3 -2
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/.github/workflows/cuda-wheels.yml +1 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/CHANGELOG.md +74 -0
- grace_runtime-0.1.2/PKG-INFO +116 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/README.md +17 -12
- grace_runtime-0.1.2/docs/benchmarks.md +20 -0
- grace_runtime-0.1.2/docs/images/benchmarks-atoms.png +0 -0
- grace_runtime-0.1.2/docs/images/benchmarks-time.png +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/docs/index.md +10 -2
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/docs/installation.md +25 -8
- grace_runtime-0.1.2/docs/lammps.md +257 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/docs/models.md +16 -3
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/docs/torchsim.md +2 -1
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/fused_1l.h +2 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/fused_2l.h +3 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/fused_cpu.h +19 -51
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/csr_images.h +8 -7
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/fused_common.h +5 -44
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_1l_fused_kk.h +9 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_1l_fused_kk_impl.h +68 -16
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_1l_kk.h +3 -2
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_1l_kk_impl.h +15 -2
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_2l_fused_kk.h +20 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_2l_fused_kk_impl.h +154 -47
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_2l_kk.h +20 -2
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_2l_kk_impl.h +48 -43
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/support.h +20 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/model_1l.h +7 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/model_2l.h +15 -2
- grace_runtime-0.1.2/libgrace/include/grace/radial_x.h +62 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/fused_1l.cpp +15 -6
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/fused_2l.cpp +17 -7
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/model_1l.cpp +24 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/model_2l.cpp +60 -6
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/model_3l.cpp +2 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/npz3.h +13 -1
- grace_runtime-0.1.2/libgrace/src/zero_pad.h +56 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/mkdocs.yml +2 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/pyproject.toml +4 -2
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/_gpu.py +14 -8
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/calculator.py +9 -3
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/cli.py +3 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/models.json +37 -7
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/kk/kk_api.h +2 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/kk/kk_core.cpp +20 -5
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/kk/kk_module.cpp +2 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_gpu_parity.py +44 -2
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_pace.py +3 -2
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_ref_tf.py +16 -7
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_rocm_plugin.py +11 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python-cuda/grace_runtime_cuda12/__init__.py +1 -1
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python-cuda/pyproject.toml +2 -2
- grace_runtime-0.1.2/tests/fixtures/grace_1l_small.npz +0 -0
- grace_runtime-0.1.2/tests/fixtures/grace_2l_small.npz +0 -0
- grace_runtime-0.1.2/tests/fixtures/legacy_1l_wide.npz +0 -0
- grace_runtime-0.1.2/tests/fixtures/legacy_2l_small.npz +0 -0
- grace_runtime-0.1.2/tests/fixtures/legacy_2l_wide.npz +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/kk/test_kk_large.cpp +3 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/test_driver.cpp +38 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/test_model_load.cpp +3 -1
- grace_runtime-0.1.0/PKG-INFO +0 -22
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/.github/workflows/release.yml +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/.github/workflows/rocm-wheels.yml +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/.gitignore +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/.readthedocs.yaml +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/CMakeLists.txt +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/LICENSE.md +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/THIRD_PARTY_NOTICES.md +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/cmake/GraceHipAtomics.cmake +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/cmake/GraceRuntime.cmake +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/docs/advanced.md +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/docs/api.md +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/docs/backends.md +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/docs/development.md +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/docs/dispersion.md +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/docs/hooks/api_reference.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/docs/pace.md +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/docs/properties.md +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/docs/relax.md +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/docs/requirements.txt +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/docs/usage.md +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/bonds.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/cell_list.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/coupling.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/cpu_gemm.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/cpu_simd.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/d3.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/d3_params.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/dispersion.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/error.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/fused_3l.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/fused_3l_cpu.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/fused_cpu_types.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/hd.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/blas.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/cublas_guard.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/d3_kk.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/fused_dense.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/fused_hip_bonds.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/g1l_shape_large.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/g2l_shape_smaxl.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/g2l_shape_smaxm.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_3l_fused_kk.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_3l_kk.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_3l_kk_cpl.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_3l_kk_cpl_path.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_3l_kk_dense.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_3l_kk_impl.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_3l_kk_radial.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_3l_kk_spbf.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/grace_3l_kk_spbf_mfma.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/kk_gemm.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/kk_mfma.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/neighbors_kk.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/pace_kk.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/rocblas_guard.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/kk/traits.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/model_3l.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/model_kind.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/pace_cpu.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/pace_embedding.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/pace_model.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/pace_radial.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/pace_tables.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/system.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/type_map.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/uq.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/include/grace/uq_head.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/fused_3l.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/model_kind.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/pace_convert.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/pace_convert.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/pace_cpu.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/pace_model.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/pace_tables.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/pace_yaml.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/pace_yaml.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/uq.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/src/uq_head.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/third_party/d3_data/LICENSE +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/third_party/grace_cnpy/LICENSE +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/third_party/grace_cnpy/cnpy.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/libgrace/third_party/grace_cnpy/cnpy.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/CMakeLists.txt +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/LICENSE-libomp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/examples/ase/grace_runtime_ase.ipynb +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/examples/phonons/phonons_batch.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/examples/relax/solute_vacancy_relax.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/examples/torchsim/_models.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/examples/torchsim/elastic_batch.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/examples/torchsim/solute_vacancy_relax.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/examples/torchsim/temperature_scan.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/examples/torchsim/uq_md_ensemble.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/__init__.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/_core.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/_cuda.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/_dispatch.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/_rocm.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/batch.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/dispersion.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/neighbors.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/phonons.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/properties.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/registry.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/relax.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/grace_runtime/torchsim.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/kk/CMakeLists.txt +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/kk/kk_core_3l.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/src/core.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/src/dispersion_args.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/src/exports.map +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/src/neighbors.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/src/neighbors.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/conftest.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/d3_ref.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/gate_cells.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/gpu_tools.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/model_tools.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/pace_tools.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_auto_device.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_batch.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_bond_source.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_calculator.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_compressed.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_core.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_cuda_plugin.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_d3.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_dispatch.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_docs_api.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_energy_only.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_examples.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_gpu_alloc_failure.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_gpu_batch.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_gpu_batch_device.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_gpu_calculator.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_gpu_chunk.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_gpu_d3.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_gpu_memory.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_gpu_module.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_gpu_pace.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_gpu_pace_uq.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_gpu_properties.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_gpu_relax.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_gpu_several_calculators.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_neighbors.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_pace_calculator.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_pace_ctilde.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_pace_npz.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_pace_radial.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_pace_spec.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_pace_uq.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_phonons.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_properties.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_registry.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_relax.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_runtimes.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_symmetry.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_torchsim.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_uq.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python/tests/test_vs_tp.py +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python-cuda/CMakeLists.txt +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python-cuda/LICENSE-Kokkos +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/python-cuda/README.md +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/coupling_ref.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/d3_ref.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/W2tri.data +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/W2tri.npz +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/W54.data +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/W54.npz +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/WMo54.data +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/WMo54.npz +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/d3_ref.npz +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/pace/al_fs_plain.yaml +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/pace/au_chebpow_density.yaml +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/pace/au_dist_corerep.yaml +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/pace/carbon_zbl.yaml +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/pace/cells.extxyz +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/pace/ethanol_nd1.yaml +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/pace/ho_nd5.yaml +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/pace/mnbtw_4el.yaml +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/pace/ni_lmax6.yaml +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/pace/pdh_zbl.yaml +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/W2tri_1l.dump +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/W2tri_1l.thermo +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/W2tri_2l.dump +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/W2tri_2l.thermo +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/W2tri_3l.dump +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/W2tri_3l.thermo +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/W54_1l.dump +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/W54_1l.thermo +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/W54_2l.dump +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/W54_2l.thermo +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/W54_3l.dump +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/W54_3l.thermo +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/WMo54_1l.dump +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/WMo54_1l.thermo +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/WMo54_2l.dump +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/WMo54_2l.thermo +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/WMo54_3l.dump +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref/WMo54_3l.thermo +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_cpl/WMo54_1l.txt +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_cpl/WMo54_2l.txt +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_cpl/WMo54_3l.txt +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W2tri_1l_fused.dump +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W2tri_1l_fused.thermo +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W2tri_1l_kk.dump +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W2tri_1l_kk.thermo +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W2tri_2l_fused.dump +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W2tri_2l_fused.thermo +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W2tri_2l_kk.dump +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W2tri_2l_kk.thermo +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W2tri_3l_kk.dump +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W2tri_3l_kk.thermo +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W54_1l_fused.dump +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W54_1l_fused.thermo +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W54_1l_kk.dump +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W54_1l_kk.thermo +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W54_2l_fused.dump +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W54_2l_fused.thermo +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W54_2l_kk.dump +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W54_2l_kk.thermo +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W54_3l_kk.dump +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/W54_3l_kk.thermo +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/WMo54_1l_fused.dump +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/WMo54_1l_fused.thermo +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/WMo54_1l_kk.dump +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/WMo54_1l_kk.thermo +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/WMo54_2l_fused.dump +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/WMo54_2l_fused.thermo +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/WMo54_2l_kk.dump +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/WMo54_2l_kk.thermo +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/WMo54_3l_kk.dump +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/fixtures/ref_gpu/WMo54_3l_kk.thermo +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/kk/kk_csr_util.h +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/kk/test_kk_1l_compile.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/kk/test_kk_2l_compile.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/kk/test_kk_2l_large.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/kk/test_kk_3l_compile.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/kk/test_kk_coupling.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/kk/test_kk_csr.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/kk/test_kk_csr_3l.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/kk/test_kk_d3.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/kk/test_kk_device.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/kk/test_kk_gemm.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/kk/test_kk_launch_check.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/kk/test_kk_neighbors.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/test_bonds.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/test_coupling.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/test_d3.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/test_driver_uq.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/test_error.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/test_gemm.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/test_host_memory.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/test_kernels_compile.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/test_model_kind.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/test_model_limits.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/test_model_shapes.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/test_pace_yaml.cpp +0 -0
- {grace_runtime-0.1.0 → grace_runtime-0.1.2}/tests/test_uq.cpp +0 -0
- {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-
|
|
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-
|
|
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
|
|
@@ -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
|
+

|
|
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
|
-
|
|
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
|
+

|
|
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
|
-
|
|
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.
|
|
51
|
-
|
|
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
|
+

|
|
6
|
+
|
|
7
|
+

|
|
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`) |
|
|
Binary file
|
|
Binary file
|
|
@@ -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
|
+

|
|
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).
|
|
60
|
-
|
|
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
|
|
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
|
|