AlexanderMath
AlexanderMath
nanoDFT computes forces on the CPU using `def grad(..)` on [line 230](https://github.com/graphcore-research/pyscf-ipu/blob/3eaeaebf7bdf29cd592f87db2c2210c7d0025d68/nanoDFT/nanoDFT.py#L267). To run `def grad(..)` on the IPU it is sufficient to port [lines 269-273](https://github.com/graphcore-research/pyscf-ipu/blob/3eaeaebf7bdf29cd592f87db2c2210c7d0025d68/nanoDFT/nanoDFT.py#L269) and [line 283](https://github.com/graphcore-research/pyscf-ipu/blob/3eaeaebf7bdf29cd592f87db2c2210c7d0025d68/nanoDFT/nanoDFT.py#L283). Different...
The following lines of code construct the following visualization of numerics during a DFT calculation. [Line 1181](https://github.com/graphcore-research/pyscf-ipu/blob/78ba7e980db2a0dc9b7196ada527e10bf738faf8/density_functional_theory.py#L1181) [Line 137](https://github.com/graphcore-research/pyscf-ipu/blob/78ba7e980db2a0dc9b7196ada527e10bf738faf8/density_functional_theory.py#L137) Tasks 1 write a file `pyscf-ipu/utils/visualize_numerics.py` and import this into `nanoDFT.py`...
To quickly experiment with different molecules, we want `--mol_str tryptofan` to automatically download/run simulation for tryptofan. We don't want to host molecule data, instead, download data on the fly and...
Every iteration of DFT computes an [eigendecomposition](https://en.wikipedia.org/wiki/Eigendecomposition_of_a_matrix) at ([line 49](https://github.com/graphcore-research/pyscf-ipu/blob/8c00822b023be9edaa3258e049642c2706d32533/nanoDFT/nanoDFT.py#L49)). Since we compute the eigendecomposition at every iteration, we may be able to initialize the eigensolver at iteration `i` by...
Add code to nanoDFT.py which allows us to experiment with different thresholds for zero-ing out ERI. We could add a command line option called `threshold` which defaults to zero.
The main purpose of `density_functional_theory.py` is to reproduce experiments for NeurIPS submission (QM1B). Task: 1. Move `density_functional_theory.py` to specific `QM1B\` folder. 2. move nanoDFT to the main root. 3. Make...
The structure optimization in [nanoDFT.py](https://github.com/graphcore-research/pyscf-ipu/blob/8f3d243edfa4d9ee8f257d91a5ae4ef1e6306fe3/nanoDFT/nanoDFT.py#L419) takes 5s wallclock each iteration (the call [jitted_nanoDFT(*tensors)](https://github.com/graphcore-research/pyscf-ipu/blob/8f3d243edfa4d9ee8f257d91a5ae4ef1e6306fe3/nanoDFT/nanoDFT.py#L148C23-L148C23) ), but the popvision profile is ~100ms. **Goal.** Figure out what takes the 4.9s and remove it....
[This file ](https://github.com/graphcore-research/pyscf-ipu/blob/main/nanoDFT/experimental_pmap_nanoDFT.py)introduces experiments with nanoDFT and pmap over 16 IPUs. Task: Get nanoDFT to run for larger `N` by using 16 IPUs and ERI sparsity (sparse matmul). If we...
The electron repulsion integrals are stored in the ERI matrix; [most are zero](https://github.com/graphcore-research/pyscf-ipu/blob/main/nanoDFT/sparse_ERI.py). TODO: - understand how sparsity of ERI changes as molecules grow, e.g., from QM9 (9 atoms), PCQ...
Amazing work! In [article ](https://arxiv.org/pdf/2303.00399.pdf) you mention Jax-SCF. Can I reproduce your Jax-SCF experiments using this repository?