MDescriptor 0.3.2__tar.gz → 0.3.3__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.
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/CMakeLists.txt +0 -4
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/PKG-INFO +3 -8
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/README.md +2 -4
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/include/mdescriptor/cuda/batch.hpp +0 -3
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/include/mdescriptor/cuda/dpa4.hpp +0 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/include/mdescriptor/cuda/dpa4c.hpp +5 -9
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/include/mdescriptor/cuda/neighbor_graph.hpp +26 -14
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/include/mdescriptor/cuda/nep.hpp +18 -24
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/src/backend.cu +26 -88
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/src/batch.cu +29 -114
- mdescriptor-0.3.3/cpp/cuda/src/device_memory.cuh +131 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/src/dpa4.cu +80 -221
- mdescriptor-0.3.3/cpp/cuda/src/dpa4_common.cuh +100 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/src/dpa4c.cu +23 -69
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/src/extended_descriptors_ace.cu +4 -11
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/src/extended_descriptors_acsf.cu +2 -7
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/src/extended_descriptors_basic.cu +3 -11
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/src/extended_descriptors_c00ps.cu +2 -7
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/src/extended_descriptors_common.cuh +95 -235
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/src/extended_descriptors_dispatch.cu +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/src/extended_descriptors_ead_lode.cu +33 -111
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/src/extended_descriptors_generic.cu +2 -8
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/src/extended_descriptors_matrix.cu +0 -4
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/src/extended_descriptors_mbtr.cu +18 -51
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/src/extended_descriptors_mtp.cu +7 -19
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/src/extended_descriptors_rotational.cu +2 -7
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/src/extended_descriptors_rotational_cache.cu +0 -3
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/src/extended_descriptors_soap.cu +0 -6
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/src/extended_descriptors_soap_turbo.cu +3 -10
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/src/extended_dispatch.hpp +12 -13
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/src/neighbor_graph.cu +71 -201
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/src/nep.cu +120 -218
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/include/mdescriptor/ace.hpp +1 -7
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/include/mdescriptor/descriptor.hpp +5 -28
- mdescriptor-0.3.3/cpp/include/mdescriptor/detail/calculator_base.hpp +30 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/include/mdescriptor/detail/math3.hpp +3 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/include/mdescriptor/detail/mbtr.hpp +2 -21
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/include/mdescriptor/detail/rotational_bispectrum.hpp +2 -2
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/include/mdescriptor/detail/species.hpp +1 -13
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/include/mdescriptor/dpa4.hpp +1 -8
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/include/mdescriptor/dpa4_wigner.hpp +0 -63
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/include/mdescriptor/dpa4c.hpp +1 -7
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/include/mdescriptor/extra.hpp +1 -7
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/include/mdescriptor/local_descriptors.hpp +0 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/include/mdescriptor/neighbor.hpp +1 -4
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/include/mdescriptor/nep.hpp +1 -7
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/bindings/module.cpp +65 -161
- mdescriptor-0.3.3/cpp/src/common/descriptor_common.hpp +99 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/common/extra_common.hpp +19 -3
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/common/local_spherical_common.hpp +12 -229
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/common/neighbor.cpp +63 -96
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/common/nep.cpp +16 -54
- mdescriptor-0.3.3/cpp/src/common/rotational_math.hpp +110 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/model_backed/dpa4.cpp +7 -494
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/model_backed/dpa4_wigner.cpp +0 -174
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/model_backed/dpa4c.cpp +5 -87
- mdescriptor-0.3.3/cpp/src/model_backed/dpa_common.hpp +69 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/standalone/ace.cpp +2 -7
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/standalone/acsf.cpp +13 -83
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/standalone/atomic_composition.cpp +2 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/standalone/c00ps_mlff.cpp +4 -34
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/standalone/coulomb_matrix.cpp +2 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/standalone/ead.cpp +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/standalone/matrix_dispatch.cpp +1 -41
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/standalone/mbtr.cpp +10 -45
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/standalone/mtp.cpp +31 -47
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/standalone/mtp4.cpp +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/standalone/rotational_descriptors.cpp +4 -96
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/standalone/sine_matrix.cpp +2 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/standalone/soap.cpp +10 -25
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/standalone/soap_turbo.cpp +20 -77
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/standalone/sorted_distances.cpp +2 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/standalone/spherical_expansion.cpp +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/docs/descriptor-inventory.md +30 -30
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/pyproject.toml +9 -3
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/scripts/benchmarking/run_descriptor_benchmark.py +9 -41
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/scripts/check_descriptor_inventory.py +3 -4
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/scripts/check_numerical_baselines.py +3 -17
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/scripts/descriptor_reference.py +2 -86
- mdescriptor-0.3.3/scripts/external_reference.py +415 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/scripts/generate_descriptor_goldens.py +13 -37
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/scripts/generate_external_static_goldens.py +75 -247
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/scripts/numerical_baselines.py +0 -12
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/scripts/verify_wheel.py +22 -68
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/_runtime.py +10 -44
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/_version.py +3 -3
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/core/__init__.py +1 -4
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/core/adapter.py +96 -263
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/core/backends.py +36 -54
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/core/errors.py +36 -4
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/core/input.py +101 -94
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/core/result.py +34 -99
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/core/species.py +0 -12
- mdescriptor-0.3.3/src/mdescriptor/descriptors/_kernels/_base.py +123 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/_kernels/ace.py +3 -9
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/_kernels/c00ps_mlff.py +28 -56
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/_kernels/core.py +39 -74
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/_kernels/dpa4.py +1 -15
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/_kernels/dpa4c.py +1 -7
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/_kernels/dpa_common.py +16 -19
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/_kernels/extra.py +4 -47
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/_kernels/local.py +8 -35
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/_kernels/matrix.py +12 -5
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/_kernels/mtp.py +24 -67
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/_kernels/nep.py +19 -60
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/_kernels/rotational.py +55 -91
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/_kernels/soap_turbo.py +22 -64
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/dpa.py +4 -53
- mdescriptor-0.3.3/src/mdescriptor/descriptors/model_backed/dpa4.py +14 -0
- mdescriptor-0.3.3/src/mdescriptor/descriptors/model_backed/dpa4c.py +14 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/graph.py +22 -0
- mdescriptor-0.3.3/src/mdescriptor/descriptors/model_backed/nep.py +14 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/models/__init__.py +4 -5
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/models/resolver.py +1 -16
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/models/session.py +18 -45
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/registry/__init__.py +1 -2
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/registry/builtins.py +24 -54
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/registry/info.py +35 -6
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/registry/registry.py +0 -6
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/registry/spec.py +0 -3
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/_golden.py +7 -55
- mdescriptor-0.3.3/tests/_public.py +43 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/contracts/test_capabilities.py +1 -14
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/contracts/test_descriptor_info.py +0 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/contracts/test_public_api.py +0 -1
- mdescriptor-0.3.3/tests/external_reference/test_featomic.py +217 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/acsf/external_manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/acsf/manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/atomiccomposition/external_manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/atomiccomposition/manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/c00psmlff/manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/coulombmatrix/external_manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/coulombmatrix/manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/ead/external_manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/ead/manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/ewaldsummatrix/external_manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/ewaldsummatrix/manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/lmbtr/external_manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/lmbtr/manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/lodesphericalexpansion/external_manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/lodesphericalexpansion/manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/mbtr/external_manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/mbtr/manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/neighborlist/external_manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/neighborlist/manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/nep/external_manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/nep/manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/sinematrix/external_manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/sinematrix/manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/snap/external_manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/snap/manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/so3/external_manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/so3/manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/so4/external_manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/so4/manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/soap/external_manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/soap/manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/soappowerspectrum/external_manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/soappowerspectrum/manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/soapradialspectrum/external_manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/soapradialspectrum/manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/sorteddistances/external_manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/sorteddistances/manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/sphericalexpansion/external_manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/sphericalexpansion/manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/sphericalexpansionbypair/external_manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/sphericalexpansionbypair/manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/valleoganov/external_manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/valleoganov/manifest.json +1 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_dpa4c.py +22 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_import_threading.py +20 -37
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_lmbtr_openmp.py +4 -63
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_neighbor_graph.py +33 -1
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_valleoganov_openmp.py +2 -54
- mdescriptor-0.3.2/cpp/src/common/descriptor_common.hpp +0 -53
- mdescriptor-0.3.2/scripts/benchmarking/benchmark_dpa_cpu_gpu.py +0 -260
- mdescriptor-0.3.2/scripts/benchmarking/benchmark_dpa_deepmd_project_gpu.py +0 -370
- mdescriptor-0.3.2/scripts/benchmarking/benchmark_dpa_large_dataset_gpu.py +0 -214
- mdescriptor-0.3.2/scripts/external_reference.py +0 -111
- mdescriptor-0.3.2/scripts/run_benchmark.py +0 -6
- mdescriptor-0.3.2/src/mdescriptor/descriptors/_kernels/structure.py +0 -10
- mdescriptor-0.3.2/src/mdescriptor/descriptors/model_backed/dpa4/__init__.py +0 -3
- mdescriptor-0.3.2/src/mdescriptor/descriptors/model_backed/dpa4/descriptor.py +0 -14
- mdescriptor-0.3.2/src/mdescriptor/descriptors/model_backed/dpa4c/__init__.py +0 -3
- mdescriptor-0.3.2/src/mdescriptor/descriptors/model_backed/dpa4c/descriptor.py +0 -14
- mdescriptor-0.3.2/src/mdescriptor/descriptors/model_backed/nep/__init__.py +0 -3
- mdescriptor-0.3.2/src/mdescriptor/descriptors/model_backed/nep/descriptor.py +0 -14
- mdescriptor-0.3.2/tests/_public.py +0 -81
- mdescriptor-0.3.2/tests/external_reference/test_featomic.py +0 -370
- mdescriptor-0.3.2/tests/test_coulombmatrix_openmp.py +0 -84
- mdescriptor-0.3.2/tests/test_ewaldsummatrix_openmp.py +0 -93
- mdescriptor-0.3.2/tests/test_sinematrix_openmp.py +0 -62
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/LICENSE +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/include/mdescriptor/cuda/backend.hpp +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/include/mdescriptor/cuda/context.hpp +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/include/mdescriptor/cuda/descriptor_dispatch.hpp +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/include/mdescriptor/cuda/error.hpp +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/include/mdescriptor/cuda/extended_descriptors.hpp +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/include/mdescriptor/cuda/local_descriptors.hpp +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/src/bindings.cu +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/src/context.cu +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/src/local_descriptors.cu +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/include/mdescriptor/detail/batch.hpp +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/include/mdescriptor/detail/blas.hpp +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/include/mdescriptor/detail/control.hpp +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/include/mdescriptor/detail/neighbor_filter.hpp +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/include/mdescriptor/matrix.hpp +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/include/mdescriptor/mtp4.hpp +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/include/mdescriptor/mtp_cinf_coeffs.hpp +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/common/control.cpp +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/common/local_common.hpp +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/common/local_layout.hpp +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/common/matrix_output.cpp +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/common/matrix_output.hpp +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/common/matrix_values.hpp +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/standalone/ewald_sum_matrix.cpp +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/standalone/neighbor_list.cpp +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/src/standalone/spherical_expansion_by_pair.cpp +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/tests/CMakeLists.txt +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/tests/test_public_api.cpp +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/docs/dpa4-strided-projections.md +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/docs/gpu-backend-design.md +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/docs/gui-adaptation-baseline.md +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/docs/numerical-baselines.md +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/scripts/ace1_reference.jl +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/scripts/benchmark_dpa_native.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/scripts/benchmarking/__init__.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/scripts/benchmarking/benchmark_cuda_graph_migration.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/scripts/benchmarking/benchmark_cuda_nep.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/scripts/benchmarking/benchmark_cuda_nep_datasets.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/scripts/benchmarking/benchmark_dpa4_launch_fix.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/scripts/benchmarking/benchmark_dpa4_strides.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/scripts/benchmarking/benchmark_nep_implementations.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/scripts/benchmarking/benchmark_openmp_small.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/scripts/build_reference_wheel.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/scripts/deepmd_reference.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/scripts/generate_ace1_reference.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/scripts/generate_external_c00ps_reference.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/scripts/promote_descriptor_golden.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/__init__.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/_cuda_loader.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/_native.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/_native.pyi +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/core/control.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/core/descriptor.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/core/json_value.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/core/model_adapter.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/core/options.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/__init__.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/_kernels/__init__.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/_kernels/mbtr_config.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/_namespace.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/__init__.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/LICENSE-LGPL-3.0-or-later.txt +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/NOTICE.md +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/__init__.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/__init__.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/api.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/common.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/__init__.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/array_api.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/common.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/descriptor/__init__.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/descriptor/base_descriptor.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/descriptor/dpa4.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/descriptor/dpa4_nn/__init__.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/descriptor/dpa4_nn/activation.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/descriptor/dpa4_nn/attention.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/descriptor/dpa4_nn/attn_res.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/descriptor/dpa4_nn/block.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/descriptor/dpa4_nn/cartesian.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/descriptor/dpa4_nn/edge_cache.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/descriptor/dpa4_nn/embedding.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/descriptor/dpa4_nn/ffn.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/descriptor/dpa4_nn/grid_net.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/descriptor/dpa4_nn/indexing.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/descriptor/dpa4_nn/mlp.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/descriptor/dpa4_nn/norm.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/descriptor/dpa4_nn/projection.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/descriptor/dpa4_nn/radial.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/descriptor/dpa4_nn/so2.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/descriptor/dpa4_nn/so3.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/descriptor/dpa4_nn/utils.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/descriptor/dpa4_nn/wignerd.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/descriptor/dpa4c.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/descriptor/dpa4c_nn/__init__.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/descriptor/dpa4c_nn/bispectrum.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/descriptor/dpa4c_nn/charge_state.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/descriptor/dpa4c_nn/geometry.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/descriptor/dpa4c_nn/pair_film.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/descriptor/dpa4c_nn/readout.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/descriptor/dpa4c_nn/spin.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/descriptor/make_base_descriptor.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/utils/__init__.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/utils/env_mat.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/utils/exclude_mask.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/utils/lebedev.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/utils/lebedev_rules.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/utils/neighbor_graph/__init__.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/utils/neighbor_graph/builder.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/utils/neighbor_graph/csr.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/utils/neighbor_graph/from_ijs.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/utils/neighbor_graph/graph.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/utils/neighbor_graph/pairs.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/utils/neighbor_graph/segment.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/utils/network.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/utils/nlist.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/utils/region.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/utils/safe_gradient.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/utils/seed.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/utils/spherical_harmonics.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/dpmodel/utils/type_embed.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/env.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/utils/__init__.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/utils/charge_state.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/utils/plugin.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/utils/version.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/model_backed/_vendor/dpa4desc/weights.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/standalone/__init__.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/standalone/ace.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/standalone/acsf.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/standalone/c00ps_mlff.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/standalone/local/__init__.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/standalone/many_body/__init__.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/standalone/matrices/__init__.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/standalone/mtp.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/standalone/rotational/__init__.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/standalone/soap.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/descriptors/standalone/soap_turbo.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/models/assets/DPA4-Air-OMat24-v20260704.pt +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/models/assets/DPA4C-Air-OMat24-v20260819.pt +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/models/assets/nep89_20250409.txt +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/models/resource.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/src/mdescriptor/registry/model_defaults.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/__init__.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/_cuda.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/contracts/test_input_schema.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/contracts/test_model_resources.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/contracts/test_result_schema.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/data/mlip2_test.mtp +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/data/mlip4_mtp6_carbon.json +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/data/mlip4_test_mtp.json +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/external_reference/__init__.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/external_reference/test_deepmd.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/external_reference/test_dscribe.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/external_reference/test_nep_adapters.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/external_reference/test_pyxtalff.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/ace/expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/ace/input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/ace/manifest.json +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/acsf/expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/acsf/external_expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/acsf/external_input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/acsf/input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/atomiccomposition/expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/atomiccomposition/external_expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/atomiccomposition/external_input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/atomiccomposition/input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/c00psmlff/expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/c00psmlff/input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/coulombmatrix/expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/coulombmatrix/external_expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/coulombmatrix/external_input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/coulombmatrix/input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/dpa4/expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/dpa4/input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/dpa4/manifest.json +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/dpa4c/expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/dpa4c/input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/dpa4c/manifest.json +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/ead/expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/ead/external_expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/ead/external_input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/ead/input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/ewaldsummatrix/expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/ewaldsummatrix/external_expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/ewaldsummatrix/external_input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/ewaldsummatrix/input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/lbispectrum/expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/lbispectrum/input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/lbispectrum/manifest.json +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/lmbtr/expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/lmbtr/external_expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/lmbtr/external_input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/lmbtr/input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/lodesphericalexpansion/expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/lodesphericalexpansion/external_expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/lodesphericalexpansion/external_input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/lodesphericalexpansion/input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/mbtr/expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/mbtr/external_expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/mbtr/external_input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/mbtr/input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/mtp/expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/mtp/input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/mtp/manifest.json +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/neighborlist/expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/neighborlist/external_expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/neighborlist/external_input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/neighborlist/input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/nep/expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/nep/external_expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/nep/external_input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/nep/input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/sinematrix/expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/sinematrix/external_expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/sinematrix/external_input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/sinematrix/input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/snap/expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/snap/external_expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/snap/external_input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/snap/input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/so3/expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/so3/external_expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/so3/external_input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/so3/input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/so4/expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/so4/external_expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/so4/external_input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/so4/input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/soap/expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/soap/external_expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/soap/external_input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/soap/input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/soappowerspectrum/expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/soappowerspectrum/external_expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/soappowerspectrum/external_input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/soappowerspectrum/input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/soapradialspectrum/expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/soapradialspectrum/external_expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/soapradialspectrum/external_input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/soapradialspectrum/input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/soapturbo/expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/soapturbo/input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/soapturbo/manifest.json +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/sorteddistances/expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/sorteddistances/external_expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/sorteddistances/external_input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/sorteddistances/input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/sphericalexpansion/expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/sphericalexpansion/external_expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/sphericalexpansion/external_input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/sphericalexpansion/input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/sphericalexpansionbypair/expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/sphericalexpansionbypair/external_expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/sphericalexpansionbypair/external_input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/sphericalexpansionbypair/input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/valleoganov/expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/valleoganov/external_expected_output.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/valleoganov/external_input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/golden/valleoganov/input.npz +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/gpu/dpa4_gemm_launch.cu +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/gpu/test_cuda_dpa.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/gpu/test_cuda_graph_migration.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/gpu/test_cuda_matrix.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/gpu/test_cuda_nep.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/gpu/test_cuda_nep_symmetry.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_ace.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_ace_golden.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_acsf_golden.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_all_descriptors.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_atomiccomposition_golden.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_c00ps_mlff.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_c00psmlff_golden.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_coulombmatrix_golden.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_cuda_backend.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_cuda_dpa4_dependencies.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_cuda_multispecies.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_descriptor_regressions.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_descriptor_symmetry.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_dpa4.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_dpa4_golden.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_dpa4c_golden.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_dpa_control.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_ead_golden.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_ewaldsummatrix_golden.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_external_static_goldens.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_golden_independence.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_lbispectrum_golden.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_lmbtr_golden.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_lodesphericalexpansion_golden.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_matrix_contract.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_mbtr_golden.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_mbtr_refactor.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_mtp.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_mtp_golden.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_neighborlist_golden.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_nep.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_nep_golden.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_nonperiodic.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_openmp_support.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_reference.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_sinematrix_golden.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_snap_golden.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_so3_golden.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_so4_golden.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_soap_acsf_advanced.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_soap_golden.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_soappowerspectrum_golden.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_soapradialspectrum_golden.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_soapturbo_golden.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_sorteddistances_golden.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_sphericalexpansion_golden.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_sphericalexpansionbypair_golden.py +0 -0
- {mdescriptor-0.3.2 → mdescriptor-0.3.3}/tests/test_valleoganov_golden.py +0 -0
|
@@ -5,9 +5,6 @@ set(PYBIND11_FINDPYTHON ON)
|
|
|
5
5
|
find_package(Python COMPONENTS Interpreter Development.Module REQUIRED)
|
|
6
6
|
find_package(pybind11 CONFIG REQUIRED)
|
|
7
7
|
|
|
8
|
-
option(MDESCRIPTOR_BUILD_NATIVE "Build the CPU native extension" ON)
|
|
9
|
-
|
|
10
|
-
if(MDESCRIPTOR_BUILD_NATIVE)
|
|
11
8
|
# OpenBLAS is a build-time dependency and is vendored into the resulting
|
|
12
9
|
# wheel. scipy-openblas32 deliberately exports a prefixed CBLAS ABI so that
|
|
13
10
|
# this extension cannot accidentally bind to NumPy/SciPy's copy of OpenBLAS.
|
|
@@ -198,7 +195,6 @@ install(
|
|
|
198
195
|
LIBRARY DESTINATION mdescriptor
|
|
199
196
|
RUNTIME DESTINATION mdescriptor
|
|
200
197
|
)
|
|
201
|
-
endif()
|
|
202
198
|
|
|
203
199
|
# The CPU and CUDA backends ship inside the same wheel; CUDA availability is
|
|
204
200
|
# a runtime choice (execution.device), never a separate distribution.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: MDescriptor
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.3
|
|
4
4
|
Summary: Batch-oriented periodic atomic descriptors with C++17 kernels
|
|
5
5
|
License: GNU GENERAL PUBLIC LICENSE
|
|
6
6
|
Version 3, 29 June 2007
|
|
@@ -716,9 +716,6 @@ Requires-Dist: pytest>=8; extra == "reference-nepadapters"
|
|
|
716
716
|
Requires-Dist: ase==3.26.0; extra == "reference-nepadapters"
|
|
717
717
|
Requires-Dist: scipy>=1.11; extra == "reference-nepadapters"
|
|
718
718
|
Requires-Dist: nep-adapters==1.0.2; extra == "reference-nepadapters"
|
|
719
|
-
Provides-Extra: all
|
|
720
|
-
Requires-Dist: ase>=3.22; extra == "all"
|
|
721
|
-
Requires-Dist: scipy>=1.11; extra == "all"
|
|
722
719
|
Provides-Extra: dev
|
|
723
720
|
Requires-Dist: pytest>=8; extra == "dev"
|
|
724
721
|
Requires-Dist: pytest-cov>=7; extra == "dev"
|
|
@@ -1062,10 +1059,8 @@ vendor adapters. The default inference graphs are lowered into the private
|
|
|
1062
1059
|
```
|
|
1063
1060
|
|
|
1064
1061
|
Coverage excludes the isolated vendored DPA implementation and enforces 75%
|
|
1065
|
-
branch coverage for project-owned Python code.
|
|
1066
|
-
|
|
1067
|
-
speedup threshold; controlled performance reports are produced by
|
|
1068
|
-
`scripts/run_benchmark.py`.
|
|
1062
|
+
branch coverage for project-owned Python code. Controlled performance
|
|
1063
|
+
reports are produced by `scripts/benchmarking/run_descriptor_benchmark.py`.
|
|
1069
1064
|
|
|
1070
1065
|
The extension is private (`mdescriptor._native`). C++ shared math and batch
|
|
1071
1066
|
helpers live in named headers under `cpp/include/mdescriptor/detail/`.
|
|
@@ -332,10 +332,8 @@ vendor adapters. The default inference graphs are lowered into the private
|
|
|
332
332
|
```
|
|
333
333
|
|
|
334
334
|
Coverage excludes the isolated vendored DPA implementation and enforces 75%
|
|
335
|
-
branch coverage for project-owned Python code.
|
|
336
|
-
|
|
337
|
-
speedup threshold; controlled performance reports are produced by
|
|
338
|
-
`scripts/run_benchmark.py`.
|
|
335
|
+
branch coverage for project-owned Python code. Controlled performance
|
|
336
|
+
reports are produced by `scripts/benchmarking/run_descriptor_benchmark.py`.
|
|
339
337
|
|
|
340
338
|
The extension is private (`mdescriptor._native`). C++ shared math and batch
|
|
341
339
|
helpers live in named headers under `cpp/include/mdescriptor/detail/`.
|
|
@@ -24,16 +24,11 @@ public:
|
|
|
24
24
|
DeviceDpa4cModel& operator=(const DeviceDpa4cModel&) = delete;
|
|
25
25
|
~DeviceDpa4cModel() noexcept;
|
|
26
26
|
|
|
27
|
-
std::int64_t feature_count() const noexcept { return feature_count_; }
|
|
28
27
|
double cutoff() const noexcept { return rcut_; }
|
|
29
28
|
|
|
30
|
-
// Returns the checkpoint type index for an atomic number, or -1 when the
|
|
31
|
-
// payload did not provide a type_numbers entry or the number is absent.
|
|
32
|
-
int type_index_for_number(std::int32_t number) const noexcept;
|
|
33
|
-
|
|
34
29
|
// type_indices is intentionally host-owned. The implementation uploads
|
|
35
30
|
// it on the model's stream and returns host float64 values with shape
|
|
36
|
-
// (batch.atoms,
|
|
31
|
+
// (batch.atoms, feature_count_).
|
|
37
32
|
std::vector<double> compute(
|
|
38
33
|
CudaExecutionContext& context,
|
|
39
34
|
const DeviceBatch& batch,
|
|
@@ -64,11 +59,8 @@ private:
|
|
|
64
59
|
std::vector<int> degree_channels_;
|
|
65
60
|
std::vector<int> bispectrum_ranks_;
|
|
66
61
|
std::vector<std::int64_t> degree_offsets_;
|
|
67
|
-
std::vector<std::int64_t> gram_offsets_;
|
|
68
62
|
std::vector<std::int32_t> gram_index_;
|
|
69
63
|
std::vector<float> gram_scale_;
|
|
70
|
-
std::vector<std::int32_t> type_numbers_;
|
|
71
|
-
std::vector<std::int32_t> host_type_lookup_;
|
|
72
64
|
|
|
73
65
|
// Every tensor is contiguous and device-resident. Keeping the ownership
|
|
74
66
|
// in this object makes model construction exception safe and avoids a
|
|
@@ -95,6 +87,10 @@ private:
|
|
|
95
87
|
std::unique_ptr<DeviceArray> probe_scale_;
|
|
96
88
|
std::unique_ptr<DeviceArray> output_mean_;
|
|
97
89
|
std::unique_ptr<DeviceArray> output_stddev_;
|
|
90
|
+
// The compact gram metadata is constant per model; it is uploaded once at
|
|
91
|
+
// construction instead of being copied into the workspace tail per call.
|
|
92
|
+
std::unique_ptr<DeviceArray> gram_index_device_;
|
|
93
|
+
std::unique_ptr<DeviceArray> gram_scale_device_;
|
|
98
94
|
};
|
|
99
95
|
|
|
100
96
|
} // namespace mdescriptor::cuda
|
{mdescriptor-0.3.2 → mdescriptor-0.3.3}/cpp/cuda/include/mdescriptor/cuda/neighbor_graph.hpp
RENAMED
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
#include "mdescriptor/cuda/context.hpp"
|
|
5
5
|
#include "mdescriptor/detail/batch.hpp"
|
|
6
6
|
|
|
7
|
+
#include <cuda_runtime.h>
|
|
8
|
+
|
|
7
9
|
#include <cstddef>
|
|
8
10
|
#include <cstdint>
|
|
9
11
|
#include <vector>
|
|
@@ -15,6 +17,30 @@ enum class NeighborGraphOrdering {
|
|
|
15
17
|
Canonical,
|
|
16
18
|
};
|
|
17
19
|
|
|
20
|
+
// An edge is the exact self pair when it connects an atom to itself in the
|
|
21
|
+
// home image. Shifts may be enumerated locally (cell images) or read from a
|
|
22
|
+
// CSR shift array; the array form stays null-safe because graphs built without
|
|
23
|
+
// periodic images carry no shifts.
|
|
24
|
+
__device__ __forceinline__ bool exact_self_edge(
|
|
25
|
+
std::int64_t center,
|
|
26
|
+
std::int64_t atom,
|
|
27
|
+
std::int64_t shift_x,
|
|
28
|
+
std::int64_t shift_y,
|
|
29
|
+
std::int64_t shift_z) {
|
|
30
|
+
return atom == center && shift_x == 0 && shift_y == 0 && shift_z == 0;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
__device__ __forceinline__ bool exact_self_edge(
|
|
34
|
+
std::int64_t center,
|
|
35
|
+
std::int64_t atom,
|
|
36
|
+
const std::int32_t* shifts,
|
|
37
|
+
std::int64_t edge) {
|
|
38
|
+
return shifts != nullptr
|
|
39
|
+
&& exact_self_edge(
|
|
40
|
+
center, atom, shifts[edge * 3], shifts[edge * 3 + 1],
|
|
41
|
+
shifts[edge * 3 + 2]);
|
|
42
|
+
}
|
|
43
|
+
|
|
18
44
|
// CSR + SoA representation shared by the CUDA descriptor family. The graph
|
|
19
45
|
// can either be uploaded by an adapter that already owns a host graph or be
|
|
20
46
|
// constructed from a device batch. DPA4/DPA4C use the latter path: only
|
|
@@ -28,13 +54,6 @@ public:
|
|
|
28
54
|
DeviceNeighborGraph& operator=(const DeviceNeighborGraph&) = delete;
|
|
29
55
|
~DeviceNeighborGraph() noexcept;
|
|
30
56
|
|
|
31
|
-
void upload(
|
|
32
|
-
CudaExecutionContext& context,
|
|
33
|
-
const std::vector<std::int64_t>& offsets,
|
|
34
|
-
const std::vector<std::int32_t>& atoms,
|
|
35
|
-
const std::vector<std::int32_t>& shifts,
|
|
36
|
-
const std::vector<double>& displacements,
|
|
37
|
-
const std::vector<double>& distance2);
|
|
38
57
|
// Build the DPA graph from device-resident coordinates. The host batch
|
|
39
58
|
// is metadata used to validate PBC and upload compact inverse cells/image
|
|
40
59
|
// bounds; it is never used to enumerate or materialize pairs.
|
|
@@ -61,7 +80,6 @@ public:
|
|
|
61
80
|
void clear() noexcept;
|
|
62
81
|
|
|
63
82
|
std::size_t pairs() const noexcept { return pairs_; }
|
|
64
|
-
std::int64_t max_neighbors() const noexcept { return max_neighbors_; }
|
|
65
83
|
bool slot_major() const noexcept { return slot_major_; }
|
|
66
84
|
std::int64_t neighbor_stride() const noexcept { return neighbor_stride_; }
|
|
67
85
|
const std::int32_t* neighbor_counts() const noexcept { return neighbor_counts_; }
|
|
@@ -83,16 +101,12 @@ private:
|
|
|
83
101
|
const std::vector<double>& grid_spacing,
|
|
84
102
|
const std::vector<std::int32_t>& grid_dimensions);
|
|
85
103
|
|
|
86
|
-
template <typename Value>
|
|
87
|
-
void ensure_capacity(Value** pointer, std::size_t* capacity, std::size_t count);
|
|
88
|
-
|
|
89
104
|
std::int64_t* offsets_ = nullptr;
|
|
90
105
|
std::int32_t* atoms_ = nullptr;
|
|
91
106
|
std::int32_t* shifts_ = nullptr;
|
|
92
107
|
double* displacements_ = nullptr;
|
|
93
108
|
double* distance2_ = nullptr;
|
|
94
109
|
std::size_t pairs_ = 0;
|
|
95
|
-
std::int64_t max_neighbors_ = 0;
|
|
96
110
|
bool slot_major_ = false;
|
|
97
111
|
std::int64_t neighbor_stride_ = 0;
|
|
98
112
|
std::size_t offsets_capacity_ = 0;
|
|
@@ -124,7 +138,6 @@ private:
|
|
|
124
138
|
std::int32_t* atom_to_structure_ = nullptr;
|
|
125
139
|
std::int32_t* cell_counts_ = nullptr;
|
|
126
140
|
std::int32_t* cell_offsets_ = nullptr;
|
|
127
|
-
std::int32_t* cell_fill_ = nullptr;
|
|
128
141
|
std::int32_t* cell_atoms_ = nullptr;
|
|
129
142
|
std::int32_t* cell_sort_keys_ = nullptr;
|
|
130
143
|
std::int32_t* atom_cells_ = nullptr;
|
|
@@ -146,7 +159,6 @@ private:
|
|
|
146
159
|
std::size_t reference_cell_inverses_capacity_ = 0;
|
|
147
160
|
std::size_t cell_counts_capacity_ = 0;
|
|
148
161
|
std::size_t cell_offsets_capacity_ = 0;
|
|
149
|
-
std::size_t cell_fill_capacity_ = 0;
|
|
150
162
|
};
|
|
151
163
|
|
|
152
164
|
} // namespace mdescriptor::cuda
|
|
@@ -7,10 +7,15 @@
|
|
|
7
7
|
|
|
8
8
|
#include <cstddef>
|
|
9
9
|
#include <cstdint>
|
|
10
|
+
#include <memory>
|
|
10
11
|
#include <vector>
|
|
11
12
|
|
|
12
13
|
namespace mdescriptor::cuda {
|
|
13
14
|
|
|
15
|
+
// Defined in device_memory.cuh; opaque here so the plugin-internal header
|
|
16
|
+
// stays free of CUDA headers.
|
|
17
|
+
struct DeviceArray;
|
|
18
|
+
|
|
14
19
|
// Device-resident descriptor portion of one parsed NEP model. The host
|
|
15
20
|
// parser remains the single source of truth for the model protocol; this
|
|
16
21
|
// object only owns the arrays needed by the descriptor kernel.
|
|
@@ -23,14 +28,12 @@ public:
|
|
|
23
28
|
DeviceNepModel& operator=(const DeviceNepModel&) = delete;
|
|
24
29
|
~DeviceNepModel() noexcept;
|
|
25
30
|
|
|
26
|
-
int version() const noexcept { return version_; }
|
|
27
31
|
int num_types() const noexcept { return num_types_; }
|
|
28
32
|
int n_max_radial() const noexcept { return n_max_radial_; }
|
|
29
33
|
int n_max_angular() const noexcept { return n_max_angular_; }
|
|
30
34
|
int basis_size_radial() const noexcept { return basis_size_radial_; }
|
|
31
35
|
int basis_size_angular() const noexcept { return basis_size_angular_; }
|
|
32
36
|
int l_max() const noexcept { return l_max_; }
|
|
33
|
-
int num_l() const noexcept { return num_l_; }
|
|
34
37
|
int dimension() const noexcept { return dimension_; }
|
|
35
38
|
double radial_cutoff_max() const noexcept { return radial_cutoff_max_; }
|
|
36
39
|
double angular_cutoff_max() const noexcept { return angular_cutoff_max_; }
|
|
@@ -46,28 +49,20 @@ public:
|
|
|
46
49
|
// semantics instead of silently writing an all-zero GPU row.
|
|
47
50
|
bool supports_atomic_number(std::int32_t number) const noexcept;
|
|
48
51
|
|
|
49
|
-
const std::int32_t* type_lookup() const noexcept
|
|
50
|
-
const float* radial_cutoff_pair() const noexcept
|
|
51
|
-
const float* angular_cutoff_pair() const noexcept
|
|
52
|
-
const float* radial_pair_coefficients() const noexcept
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
const float* angular_pair_coefficients() const noexcept {
|
|
56
|
-
return angular_pair_coefficients_;
|
|
57
|
-
}
|
|
58
|
-
const float* scalers() const noexcept { return scalers_; }
|
|
52
|
+
const std::int32_t* type_lookup() const noexcept;
|
|
53
|
+
const float* radial_cutoff_pair() const noexcept;
|
|
54
|
+
const float* angular_cutoff_pair() const noexcept;
|
|
55
|
+
const float* radial_pair_coefficients() const noexcept;
|
|
56
|
+
const float* angular_pair_coefficients() const noexcept;
|
|
57
|
+
const float* scalers() const noexcept;
|
|
59
58
|
|
|
60
59
|
private:
|
|
61
|
-
void release() noexcept;
|
|
62
|
-
|
|
63
|
-
int version_ = 0;
|
|
64
60
|
int num_types_ = 0;
|
|
65
61
|
int n_max_radial_ = 0;
|
|
66
62
|
int n_max_angular_ = 0;
|
|
67
63
|
int basis_size_radial_ = 0;
|
|
68
64
|
int basis_size_angular_ = 0;
|
|
69
65
|
int l_max_ = 0;
|
|
70
|
-
int num_l_ = 0;
|
|
71
66
|
int dimension_ = 0;
|
|
72
67
|
double radial_cutoff_max_ = 0.0;
|
|
73
68
|
double angular_cutoff_max_ = 0.0;
|
|
@@ -79,19 +74,18 @@ private:
|
|
|
79
74
|
bool has_q_134_ = false;
|
|
80
75
|
std::vector<std::int32_t> host_type_lookup_;
|
|
81
76
|
|
|
82
|
-
std::
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
77
|
+
std::unique_ptr<DeviceArray> type_lookup_;
|
|
78
|
+
std::unique_ptr<DeviceArray> radial_cutoff_pair_;
|
|
79
|
+
std::unique_ptr<DeviceArray> angular_cutoff_pair_;
|
|
80
|
+
std::unique_ptr<DeviceArray> radial_pair_coefficients_;
|
|
81
|
+
std::unique_ptr<DeviceArray> angular_pair_coefficients_;
|
|
82
|
+
std::unique_ptr<DeviceArray> scalers_;
|
|
88
83
|
};
|
|
89
84
|
|
|
90
85
|
std::vector<double> compute_nep(
|
|
91
86
|
CudaExecutionContext& context,
|
|
92
87
|
const DeviceBatch& batch,
|
|
93
88
|
const DeviceNeighborGraph& graph,
|
|
94
|
-
const DeviceNepModel& model
|
|
95
|
-
bool reference_radial_accumulation = false);
|
|
89
|
+
const DeviceNepModel& model);
|
|
96
90
|
|
|
97
91
|
} // namespace mdescriptor::cuda
|
|
@@ -31,7 +31,11 @@
|
|
|
31
31
|
|
|
32
32
|
namespace py = pybind11;
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
// Shared extended-descriptor glue. This header leaves namespace
|
|
35
|
+
// mdescriptor::cuda open for its includers, so it must stay the last include:
|
|
36
|
+
// everything below is already inside that namespace and the file closes it.
|
|
37
|
+
#include "extended_descriptors_common.cuh"
|
|
38
|
+
|
|
35
39
|
namespace {
|
|
36
40
|
|
|
37
41
|
using I32Array = py::array_t<std::int32_t, py::array::c_style | py::array::forcecast>;
|
|
@@ -75,23 +79,6 @@ BatchArrays arrays_from_batch(const py::object& value) {
|
|
|
75
79
|
std::move(pbc), std::move(offsets), view};
|
|
76
80
|
}
|
|
77
81
|
|
|
78
|
-
template <typename Value>
|
|
79
|
-
Value option(const py::dict& options, const char* name, Value fallback) {
|
|
80
|
-
const py::str key(name);
|
|
81
|
-
if (!options.contains(key) || options[key].is_none()) {
|
|
82
|
-
return fallback;
|
|
83
|
-
}
|
|
84
|
-
return py::cast<Value>(options[key]);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
std::vector<std::int32_t> species_option(const py::dict& options) {
|
|
88
|
-
const py::str key("species");
|
|
89
|
-
if (!options.contains(key) || options[key].is_none()) {
|
|
90
|
-
return {};
|
|
91
|
-
}
|
|
92
|
-
return py::cast<std::vector<std::int32_t>>(options[key]);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
82
|
py::dict dpa_payload_option(const py::dict& options, const std::string& name) {
|
|
96
83
|
const py::str key("_cuda_payload");
|
|
97
84
|
if (!options.contains(key) || options[key].is_none()) {
|
|
@@ -148,13 +135,9 @@ std::int64_t feature_count_for(
|
|
|
148
135
|
// that value private lets the CUDA plugin add a family without duplicating
|
|
149
136
|
// every label/layout formula in this dispatch seam (matrix descriptors
|
|
150
137
|
// may legitimately resolve their width only after seeing a batch).
|
|
151
|
-
const
|
|
152
|
-
if (
|
|
153
|
-
|
|
154
|
-
return value > 0 ? value : 0;
|
|
155
|
-
}
|
|
156
|
-
if (is_extended_descriptor(name)) {
|
|
157
|
-
return 0;
|
|
138
|
+
const std::int64_t configured = feature_count_option(options, 0);
|
|
139
|
+
if (is_extended_descriptor(name) || configured > 0) {
|
|
140
|
+
return configured;
|
|
158
141
|
}
|
|
159
142
|
throw std::invalid_argument("CUDA backend does not support this descriptor");
|
|
160
143
|
}
|
|
@@ -190,8 +173,6 @@ std::vector<std::int32_t> dpa_type_indices(
|
|
|
190
173
|
return result;
|
|
191
174
|
}
|
|
192
175
|
|
|
193
|
-
py::list generic_labels(const std::string& name, std::int64_t features);
|
|
194
|
-
|
|
195
176
|
py::list dpa_labels(const py::dict& options, const std::string& name, std::int64_t features) {
|
|
196
177
|
const py::dict payload = dpa_payload_option(options, name);
|
|
197
178
|
const py::str key("labels");
|
|
@@ -202,7 +183,7 @@ py::list dpa_labels(const py::dict& options, const std::string& name, std::int64
|
|
|
202
183
|
throw std::invalid_argument(name + " CUDA model payload has invalid labels");
|
|
203
184
|
}
|
|
204
185
|
}
|
|
205
|
-
return
|
|
186
|
+
return labels_option(options, name, features);
|
|
206
187
|
}
|
|
207
188
|
|
|
208
189
|
bool cancelled(const py::object& control) {
|
|
@@ -227,24 +208,6 @@ void check_cancelled(const py::object& control) {
|
|
|
227
208
|
}
|
|
228
209
|
}
|
|
229
210
|
|
|
230
|
-
py::array double_array(const std::vector<double>& values, std::int64_t rows, std::int64_t columns) {
|
|
231
|
-
py::array_t<double> result({
|
|
232
|
-
static_cast<py::ssize_t>(rows), static_cast<py::ssize_t>(columns),
|
|
233
|
-
});
|
|
234
|
-
if (!values.empty()) {
|
|
235
|
-
std::copy(values.begin(), values.end(), result.mutable_data());
|
|
236
|
-
}
|
|
237
|
-
return result;
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
py::list generic_labels(const std::string& name, std::int64_t features) {
|
|
241
|
-
py::list labels;
|
|
242
|
-
for (std::int64_t index = 0; index < features; ++index) {
|
|
243
|
-
labels.append(name + ":" + std::to_string(index));
|
|
244
|
-
}
|
|
245
|
-
return labels;
|
|
246
|
-
}
|
|
247
|
-
|
|
248
211
|
py::list nep_labels(std::int64_t features) {
|
|
249
212
|
py::list labels;
|
|
250
213
|
for (std::int64_t index = 0; index < features; ++index) {
|
|
@@ -253,30 +216,6 @@ py::list nep_labels(std::int64_t features) {
|
|
|
253
216
|
return labels;
|
|
254
217
|
}
|
|
255
218
|
|
|
256
|
-
py::array offsets_array(const std::vector<std::int64_t>& offsets) {
|
|
257
|
-
py::array_t<std::int64_t> result(offsets.size());
|
|
258
|
-
std::copy(offsets.begin(), offsets.end(), result.mutable_data());
|
|
259
|
-
return result;
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
py::dict result_metadata(const std::string& name, const py::dict& options) {
|
|
263
|
-
py::dict metadata;
|
|
264
|
-
metadata["descriptor"] = name;
|
|
265
|
-
metadata["backend"] = "mdescriptor-cuda";
|
|
266
|
-
py::dict execution;
|
|
267
|
-
execution["device"] = "cuda";
|
|
268
|
-
const py::str execution_key("execution");
|
|
269
|
-
if (options.contains(execution_key) && !options[execution_key].is_none()) {
|
|
270
|
-
const py::dict options_execution = py::cast<py::dict>(options[execution_key]);
|
|
271
|
-
execution["num_threads"] = options_execution.contains("num_threads")
|
|
272
|
-
? options_execution["num_threads"] : py::none();
|
|
273
|
-
} else {
|
|
274
|
-
execution["num_threads"] = py::none();
|
|
275
|
-
}
|
|
276
|
-
metadata["execution"] = execution;
|
|
277
|
-
return metadata;
|
|
278
|
-
}
|
|
279
|
-
|
|
280
219
|
__global__ void write_neighbor_records(
|
|
281
220
|
const std::int64_t* graph_offsets,
|
|
282
221
|
const std::int32_t* graph_atoms,
|
|
@@ -300,7 +239,7 @@ __global__ void write_neighbor_records(
|
|
|
300
239
|
const std::int32_t shift_x = graph_shifts[index * 3 + 0];
|
|
301
240
|
const std::int32_t shift_y = graph_shifts[index * 3 + 1];
|
|
302
241
|
const std::int32_t shift_z = graph_shifts[index * 3 + 2];
|
|
303
|
-
if (!self_pairs &&
|
|
242
|
+
if (!self_pairs && exact_self_edge(center, atom, shift_x, shift_y, shift_z)) {
|
|
304
243
|
continue;
|
|
305
244
|
}
|
|
306
245
|
if (!full_neighbor_list && !detail::keep_half_neighbor(
|
|
@@ -340,8 +279,7 @@ __global__ void count_filtered_neighbor_records(
|
|
|
340
279
|
for (std::int64_t index = begin; index < end; ++index) {
|
|
341
280
|
const std::int32_t atom = graph_atoms[index];
|
|
342
281
|
const std::int32_t* shift = graph_shifts + index * 3;
|
|
343
|
-
if (!self_pairs && atom
|
|
344
|
-
&& shift[0] == 0 && shift[1] == 0 && shift[2] == 0) {
|
|
282
|
+
if (!self_pairs && exact_self_edge(center, atom, graph_shifts, index)) {
|
|
345
283
|
continue;
|
|
346
284
|
}
|
|
347
285
|
if (!full_neighbor_list && !detail::keep_half_neighbor(
|
|
@@ -502,17 +440,17 @@ py::object Backend::compute(py::object batch_object, py::object control) {
|
|
|
502
440
|
}
|
|
503
441
|
}
|
|
504
442
|
py::dict result;
|
|
505
|
-
result["values"] =
|
|
443
|
+
result["values"] = values_array(values, rows, 4);
|
|
506
444
|
result["level"] = "pair";
|
|
507
|
-
result["row_offsets"] =
|
|
508
|
-
result["pair_records"] =
|
|
445
|
+
result["row_offsets"] = i64_array(row_offsets);
|
|
446
|
+
result["pair_records"] = values_array(pair_records, rows, 5);
|
|
509
447
|
py::list labels;
|
|
510
448
|
labels.append("dx");
|
|
511
449
|
labels.append("dy");
|
|
512
450
|
labels.append("dz");
|
|
513
451
|
labels.append("distance");
|
|
514
452
|
result["labels"] = labels;
|
|
515
|
-
result["metadata"] =
|
|
453
|
+
result["metadata"] = mdescriptor::cuda::metadata(options_, name_);
|
|
516
454
|
return std::move(result);
|
|
517
455
|
}
|
|
518
456
|
|
|
@@ -522,11 +460,11 @@ py::object Backend::compute(py::object batch_object, py::object control) {
|
|
|
522
460
|
mark_completed(control);
|
|
523
461
|
}
|
|
524
462
|
py::dict result;
|
|
525
|
-
result["values"] =
|
|
463
|
+
result["values"] = values_array({}, 0, feature_count_);
|
|
526
464
|
result["level"] = "atom";
|
|
527
465
|
result["row_offsets"] = arrays.offsets;
|
|
528
466
|
result["labels"] = nep_labels(feature_count_);
|
|
529
|
-
result["metadata"] =
|
|
467
|
+
result["metadata"] = mdescriptor::cuda::metadata(options_, name_);
|
|
530
468
|
return std::move(result);
|
|
531
469
|
}
|
|
532
470
|
for (std::int64_t atom = 0; atom < arrays.view.atoms; ++atom) {
|
|
@@ -557,7 +495,7 @@ py::object Backend::compute(py::object batch_object, py::object control) {
|
|
|
557
495
|
device_graph_.build_nep(
|
|
558
496
|
*context_, *compute_batch, compute_view, cutoff);
|
|
559
497
|
const auto computed = compute_nep(
|
|
560
|
-
*context_, *compute_batch, device_graph_, *nep_model_
|
|
498
|
+
*context_, *compute_batch, device_graph_, *nep_model_);
|
|
561
499
|
values = computed;
|
|
562
500
|
}
|
|
563
501
|
check_cancelled(control);
|
|
@@ -565,11 +503,11 @@ py::object Backend::compute(py::object batch_object, py::object control) {
|
|
|
565
503
|
mark_completed(control);
|
|
566
504
|
}
|
|
567
505
|
py::dict result;
|
|
568
|
-
result["values"] =
|
|
506
|
+
result["values"] = values_array(values, arrays.view.atoms, feature_count_);
|
|
569
507
|
result["level"] = "atom";
|
|
570
508
|
result["row_offsets"] = arrays.offsets;
|
|
571
509
|
result["labels"] = nep_labels(feature_count_);
|
|
572
|
-
result["metadata"] =
|
|
510
|
+
result["metadata"] = mdescriptor::cuda::metadata(options_, name_);
|
|
573
511
|
return std::move(result);
|
|
574
512
|
}
|
|
575
513
|
|
|
@@ -592,11 +530,11 @@ py::object Backend::compute(py::object batch_object, py::object control) {
|
|
|
592
530
|
mark_completed(control);
|
|
593
531
|
}
|
|
594
532
|
py::dict result;
|
|
595
|
-
result["values"] =
|
|
533
|
+
result["values"] = values_array(values, arrays.view.atoms, feature_count_);
|
|
596
534
|
result["level"] = "atom";
|
|
597
535
|
result["row_offsets"] = arrays.offsets;
|
|
598
536
|
result["labels"] = dpa_labels(options_, name_, feature_count_);
|
|
599
|
-
result["metadata"] =
|
|
537
|
+
result["metadata"] = mdescriptor::cuda::metadata(options_, name_);
|
|
600
538
|
return std::move(result);
|
|
601
539
|
}
|
|
602
540
|
|
|
@@ -649,16 +587,16 @@ py::object Backend::compute(py::object batch_object, py::object control) {
|
|
|
649
587
|
mark_completed(control);
|
|
650
588
|
}
|
|
651
589
|
py::dict result;
|
|
652
|
-
result["values"] =
|
|
590
|
+
result["values"] = values_array(values, arrays.view.atoms, features);
|
|
653
591
|
result["level"] = "atom";
|
|
654
592
|
result["row_offsets"] = arrays.offsets;
|
|
655
|
-
result["labels"] =
|
|
656
|
-
result["metadata"] =
|
|
593
|
+
result["labels"] = labels_option(options_, name_, features);
|
|
594
|
+
result["metadata"] = mdescriptor::cuda::metadata(options_, name_);
|
|
657
595
|
return std::move(result);
|
|
658
596
|
}
|
|
659
597
|
|
|
660
598
|
py::dict Backend::metadata() const {
|
|
661
|
-
return
|
|
599
|
+
return mdescriptor::cuda::metadata(options_, name_);
|
|
662
600
|
}
|
|
663
601
|
|
|
664
602
|
void Backend::close() noexcept {
|