Skala is a neural network-based exchange-correlation functional for density functional theory (DFT), developed by Microsoft Research AI for Science. It leverages deep learning to predict exchange-correlation energies from electron density features, achieving chemical accuracy for atomization energies and strong performance on broad thermochemistry and kinetics benchmarks, all at a computational cost similar to semi-local DFT.
Trained on a large, diverse dataset—including coupled cluster atomization energies and public benchmarks—Skala uses scalable message passing and local layers to learn both local and non-local effects. The model has about 276,000 parameters and matches the accuracy of leading hybrid functionals.
Learn more about Skala in our ArXiv paper.
This repository contains three main components:
- The Python package
microsoft-skala, which is also distributed on PyPI and contains a Pytorch implementation of the Skala model, its hookups to quantum chemistry packages PySCF and ASE, and an independent client library for the Skala model served in Azure AI Foundry. - A development version of the CPU/GPU C++ library for XC functionals GauXC with an add-on supporting Pytorch-based functionals like Skala. GauXC is part of the stack that serves Skala in Azure AI Foundry and can be used to integrate Skala into other third-party DFT codes.
- An example of using Skala in C++ CPU applications through LibTorch, see
examples/cpp/cpp_integration.
All information below relates to the Python package, the development version of GauXC including its license and other information can be found in third_party/gauxc.
Install using Pip:
pip install torch --index-url https://download.pytorch.org/whl/cpu # unless you already have GPU Pytorch for something else
pip install microsoft-skalaRun an SCF calculation with Skala for a hydrogen molecule:
from pyscf import gto
from skala.pyscf import SkalaKS
mol = gto.M(
atom="""H 0 0 0; H 0 0 1.4""",
basis="def2-tzvp",
)
ks = SkalaKS(mol, xc="skala")
ks.kernel()Go to microsoft.github.io/skala for a more detailed installation guide and further examples of how to use Skala functional with PySCF and ASE and in Azure Foundry.
Install using Pip:
cu_version=128 #or 126 or 130 depending on your CUDA version
pip install torch cupy --extra-index-url "https://download.pytorch.org/whl/cu${cu_version}"
pip install --no-deps "gpu4pyscf-cuda${cu_version:0:2}x>=1.0,<2" "gpu4pyscf-libxc-cuda${cu_version:0:2}x>=0.4,<1"
pip install microsoft-skalaRun an SCF calculation with Skala for a hydrogen molecule on GPU:
from pyscf import gto
from skala.gpu4pyscf import SkalaKS
mol = gto.M(
atom="""H 0 0 0; H 0 0 1.4""",
basis="def2-tzvp",
)
ks = SkalaKS(mol, xc="skala")
ks.kernel()See the following files for more information about contributing, reporting issues, and the code of conduct:
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.