|
4 | 4 | [[Supported Tensor Products]](#tensor-products-we-accelerate) |
5 | 5 | [[Citation and Acknowledgements]](#citation-and-acknowledgements) |
6 | 6 |
|
7 | | -OpenEquivariance is a kernel generator for the Clebsch-Gordon tensor product, |
| 7 | +OpenEquivariance is a CUDA and HIP kernel generator for the Clebsch-Gordon tensor product, |
8 | 8 | a key kernel in rotation-equivariant deep neural networks. |
9 | 9 | It implements some of the tensor products |
10 | | -that [e3nn](https://e3nn.org/) supports that are |
| 10 | +that [e3nn](https://e3nn.org/) supports |
11 | 11 | commonly found in graph neural networks |
12 | 12 | (e.g. [Nequip](https://github.com/mir-group/nequip) or |
13 | | -[MACE](https://github.com/ACEsuit/mace)). To get started, install our package via |
| 13 | +[MACE](https://github.com/ACEsuit/mace)). To get |
| 14 | +started, ensure that you have GCC 9+ on your system |
| 15 | +and install our package via |
14 | 16 |
|
15 | 17 | ```bash |
16 | 18 | pip install git+https://github.com/PASSIONLab/OpenEquivariance |
17 | 19 | ``` |
18 | 20 |
|
19 | | -We provide up to an order of magnitude acceleration over e3nn |
20 | | -and up to ~2x speedup over |
21 | | -[NVIDIA cuEquivariance](https://github.com/NVIDIA/cuEquivariance), |
22 | | -which has a closed-source kernel package. We also offer fused |
23 | | -equivariant graph convolutions that can reduce |
| 21 | +We provide up to an order of magnitude acceleration over e3nn perform on par with the latest |
| 22 | +version of [NVIDIA cuEquivariance](https://github.com/NVIDIA/cuEquivariance), |
| 23 | +which has a closed-source kernel package. |
| 24 | +We also offer fused equivariant graph |
| 25 | +convolutions that can reduce |
24 | 26 | computation and memory consumption significantly. |
25 | 27 |
|
26 | 28 | We currently support NVIDIA GPUs and just added beta support on AMD GPUs for |
@@ -124,22 +126,24 @@ print(torch.norm(Z)) |
124 | 126 | arbitrary order. |
125 | 127 |
|
126 | 128 | ## Installation |
127 | | -We currently support Linux systems only. We recommend that you use |
128 | | -`conda` or `mamba` to set up a Python environment for installation. |
129 | | - |
130 | | -After activating an environment of your choice, run |
| 129 | +We currently support Linux systems only. |
| 130 | +Before installation and the first library import, |
| 131 | +ensure that the command |
| 132 | +`c++ --version` returns GCC 9+; if not, set the |
| 133 | +`CC` and `CXX` environment variables to point to |
| 134 | +valid compilers. On NERSC Perlmutter, |
| 135 | +`module load gcc` will set up your environment |
| 136 | +correctly. |
| 137 | + |
| 138 | +To install, run |
131 | 139 | ```bash |
132 | 140 | pip install git+https://github.com/PASSIONLab/OpenEquivariance |
133 | 141 | ``` |
134 | 142 | After installation, the very first library |
135 | | -import will trigger a build of a C++ extension we use. |
| 143 | +import will trigger a build of a C++ extension we use, |
| 144 | +which takes longer than usual. |
136 | 145 | All subsequent imports will not retrigger compilation. |
137 | 146 |
|
138 | | -If you encounter problems with installation, let us |
139 | | -know by filing a bug and try a development build (see |
140 | | -below). After installation, you should be able |
141 | | -to run the example above. |
142 | | - |
143 | 147 | ## Replicating our benchmarks |
144 | 148 | To run our benchmark suite, you'll also need the following packages: |
145 | 149 | - `e3nn`, |
|
0 commit comments