Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
a7d10e7
Remove legacy GauXC integration
JensWehner Sep 4, 2026
99d7efd
Bootstrap SkalaXC dependencies
JensWehner Sep 4, 2026
dd7fc5d
Add SkalaXC core data primitives
JensWehner Sep 4, 2026
1b3e471
Add TorchScript model runtime
JensWehner Sep 4, 2026
08b00af
Implement host XC backend
JensWehner Sep 4, 2026
961c96c
Add ABI-isolated C++ API
JensWehner Sep 4, 2026
436b9ac
Add C API
JensWehner Sep 4, 2026
f77abee
Add Fortran API
JensWehner Sep 4, 2026
1ed798e
Add CUDA backend and native build
JensWehner Sep 4, 2026
334b762
Add native integration and ABI tests
JensWehner Sep 4, 2026
d1931f0
Add native examples and API docs
JensWehner Sep 4, 2026
a73f11f
Add Python bindings and tests
JensWehner Sep 4, 2026
229c7ac
Add package build recipes
JensWehner Sep 4, 2026
a540456
Integrate SkalaXC into Pixi
JensWehner Sep 4, 2026
4ba29bc
Add CI and update repository docs
JensWehner Sep 4, 2026
b4a4ed3
fix all Setup Pixi
JensWehner Sep 4, 2026
bcf5b8c
Migrate SkalaXC tests to Catch2 3
JensWehner Sep 4, 2026
a413451
Strengthen SkalaXC behavioral contracts
JensWehner Sep 4, 2026
967d7ab
Make SkalaXC test selection fail closed
JensWehner Sep 4, 2026
dca0535
Add chlorine functional parity coverage
JensWehner Sep 4, 2026
ff8c84f
Clarify SkalaXC API compatibility contracts
JensWehner Sep 4, 2026
a18c979
Document SkalaXC contributor workflow
JensWehner Sep 4, 2026
26732ad
Fix PySCF SkalaXC gradient parity tests
JensWehner Sep 6, 2026
c4609c8
harden tests
JensWehner Sep 6, 2026
a60032c
Fix Python container value access and assignment
JensWehner Sep 6, 2026
575ca43
Remove unsupported LKO molecular weights from public APIs
JensWehner Sep 6, 2026
7d99b5f
Coordinate MPI evaluation failures across runtime ranks
JensWehner Sep 6, 2026
616eb6d
Reject kinetic-density models without gradient features
JensWehner Sep 6, 2026
b3dfb54
reduce gpu4pyscf memory requirements
JensWehner Sep 9, 2026
8f789ea
fix parit tests
JensWehner Sep 9, 2026
62aff37
Fix MPI gradient tensor conversion
Copilot Sep 10, 2026
7cbebde
made indexing cleaner
JensWehner Sep 11, 2026
e09d70f
Document SkalaXC helper parameters
Copilot Sep 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .github/actionlint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
self-hosted-runner:
labels:
- microsoft-skala-cpu-pool
- microsoft-skala-gpu-pool
- microsoft-skala-small-gpu-pool

paths:
.github/workflows/**/*.{yml,yaml}:
ignore:
- '"paths" section must be sequence node but got alias node'
76 changes: 76 additions & 0 deletions .github/actions/report-toolchain/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: Report compiler toolchain
description: Report the activated compiler environment and compiler-selected linker

inputs:
c-compiler:
description: C compiler command; defaults to CC or cc
required: false
default: ""
cxx-compiler:
description: C++ compiler command; defaults to CXX or c++
required: false
default: ""
fortran-compiler:
description: Fortran compiler command; defaults to FC or gfortran
required: false
default: ""
cuda-compiler:
description: CUDA compiler command; defaults to CUDACXX or nvcc when available
required: false
default: ""

runs:
using: composite
steps:
- name: Report compiler toolchain
shell: bash
env:
INPUT_C_COMPILER: ${{ inputs.c-compiler }}
INPUT_CXX_COMPILER: ${{ inputs.cxx-compiler }}
INPUT_FORTRAN_COMPILER: ${{ inputs.fortran-compiler }}
INPUT_CUDA_COMPILER: ${{ inputs.cuda-compiler }}
run: |
set -euo pipefail

for variable in \
CONDA_PREFIX CC CXX FC CUDACXX \
CFLAGS CXXFLAGS FFLAGS CUDAFLAGS LDFLAGS
do
printf '%s=%s\n' "$variable" "${!variable:-<unset>}"
done

c_compiler=${INPUT_C_COMPILER:-${CC:-$(command -v cc || true)}}
cxx_compiler=${INPUT_CXX_COMPILER:-${CXX:-$(command -v c++ || true)}}
fortran_compiler=${INPUT_FORTRAN_COMPILER:-${FC:-$(command -v gfortran || true)}}
cuda_compiler=${INPUT_CUDA_COMPILER:-${CUDACXX:-$(command -v nvcc || true)}}

report_compiler() {
local language=$1
local compiler=$2
if [[ -z "$compiler" ]]; then
return
fi
printf '\n%s compiler: %s\n' "$language" "$compiler"
"$compiler" --version
}

report_compiler C "$c_compiler"
report_compiler C++ "$cxx_compiler"
report_compiler Fortran "$fortran_compiler"
report_compiler CUDA "$cuda_compiler"

if [[ -z "$cxx_compiler" ]]; then
printf 'A C++ compiler is required to identify the host linker.\n' >&2
exit 1
fi

linker=$("$cxx_compiler" -print-prog-name=ld)
if [[ "$linker" != /* ]]; then
linker=$(command -v "$linker" || true)
fi
if [[ -z "$linker" || ! -x "$linker" ]]; then
printf 'Could not resolve the C++ compiler-selected linker.\n' >&2
exit 1
fi

printf '\nC++ linker: %s\n' "$linker"; "$linker" --version || "$linker" -v
161 changes: 0 additions & 161 deletions .github/workflows/examples.yml

This file was deleted.

38 changes: 0 additions & 38 deletions .github/workflows/gauxc-test.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/model-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,4 @@ jobs:
environment: default

- name: Run model unit tests
run: pytest -v model/tests/test_model.py model/tests/test_utils.py
run: pytest -v model/tests/test_model.py model/tests/test_utils.py
71 changes: 71 additions & 0 deletions .github/workflows/pyscf-skalaxc-parity.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
name: "PySCF-SkalaXC parity tests"

on:
push:
branches: [main]
paths: &parity-test-paths
- '.github/workflows/pyscf-skalaxc-parity.yml'
- 'tests/**'
- 'skala/src/skala/**'
- 'SkalaXC/**'
- 'pixi.lock'
- 'pixi.toml'
- 'pyproject.toml'
pull_request:
branches: [main]
paths: *parity-test-paths
workflow_dispatch:

permissions:
contents: read

jobs:
test:
runs-on: ubuntu-latest
env:
OMP_NUM_THREADS: 4
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
submodules: recursive
persist-credentials: false

- name: Print CPU diagnostics
uses: ./.github/actions/cpu-diagnostics

- name: Setup Pixi
uses: ./.github/actions/setup-pixi
with:
environment: skalaxc-parity

- name: Configure SkalaXC
run: >-
cmake
-S SkalaXC
-B SkalaXC/build-pixi-parity
-G Ninja
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/SkalaXC/install-pixi-parity
-DSKALAXC_BUILD_FORTRAN=OFF
-DSKALAXC_BUILD_TESTS=OFF
-DSKALAXC_BUILD_EXAMPLES=OFF
-DSKALAXC_DOWNLOAD_MODELS=ON
-DSKALAXC_ENABLE_CUDA=OFF
-DSKALAXC_ENABLE_MPI=OFF
-DSKALAXC_ENABLE_OPENMP=ON

- name: Build and install SkalaXC
run: |
cmake --build SkalaXC/build-pixi-parity --parallel 2
cmake --install SkalaXC/build-pixi-parity --component Core

- name: Install SkalaXC Python binding
env:
SkalaXC_DIR: ${{ github.workspace }}/SkalaXC/install-pixi-parity/lib/cmake/SkalaXC
SKALAXC_PYTHON_LAYOUT: WHEEL
run: >-
python -m pip install SkalaXC/python
--no-build-isolation --no-deps --force-reinstall

- name: Run direct-binding parity tests
run: pytest -v tests/test_pyscf_skalaxc_parity.py
2 changes: 1 addition & 1 deletion .github/workflows/skala-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -120,4 +120,4 @@ jobs:
environment: test-py312-pyscf214-torch213

- name: Run profiling tests
run: pytest -v -m profiling skala/tests/
run: pytest -v -m profiling skala/tests/
Loading