You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+197-3Lines changed: 197 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,8 @@
2
2
[](https://github.com/PASSIONLab/OpenEquivariance/actions/workflows/verify_extension_build.yml)
e3nn supports a variety of connection modes for CG tensor products. We support
275
+
two that are commonly used in equivariant graph neural networks:
276
+
"uvu" and "uvw". Our JIT compiled kernels should handle:
277
+
278
+
1. Pure "uvu" tensor products, which are most efficient when the input with higher
279
+
multiplicities is the first argument. Our results are identical to e3nn when irreps in
280
+
the second input have multiplicity 1, and otherwise identical up to a reordering
281
+
of the input weights.
282
+
283
+
2. Pure "uvw" tensor products, which are currently more efficient when the input with
284
+
higher multiplicities is the first argument. Our results are identical to e3nn up to a reordering
285
+
of the input weights.
286
+
287
+
Our code includes correctness checks, but the configuration space is large. If you notice
288
+
a bug, let us know in a Github issue. We'll try our best to correct it or document the problem here.
289
+
290
+
We do not (yet) support:
291
+
292
+
- Mixing different instruction types in the same tensor product.
293
+
- Instruction types besides "uvu" and "uvw".
294
+
- Non-trainable instructions: all of your instructions must have weights associated.
295
+
296
+
If you have a use case for any of the unsupported features above, let us know.
297
+
298
+
We have recently added beta support for symmetric
299
+
contraction acceleration. Because this is a kernel
300
+
specific to MACE, we require e3nn as dependency
301
+
to run it, and there is currently no support for
302
+
compile / export (coming soon!), we
303
+
do not expose it in the package
304
+
toplevel. You can test out our implementation by
305
+
running
306
+
307
+
```python
308
+
from openequivariance.implementations.symmetric_contraction import SymmetricContraction as OEQSymmetricContraction
309
+
```
310
+
311
+
## Multidevice / Stream Support
312
+
To use OpenEquivariance on multiple GPUs of a single
313
+
compute node, we currently require that all GPUs
314
+
share the same compute capability. This is because
315
+
our kernels are compiled based on the shared memory
316
+
capacity of the numerically first visible GPU card.
317
+
On heterogeneous systems, you can still
318
+
use OpenEquivariance on all GPUs that match the
319
+
compute capability of the first visible device.
320
+
321
+
We are working on support for CUDA streams!
322
+
131
323
## Citation and Acknowledgements
132
324
If you find this code useful, please cite our paper:
133
325
@@ -137,7 +329,9 @@ author={Vivek Bharadwaj and Austin Glover and Aydin Buluc and James Demmel},
137
329
title={An Efficient Sparse Kernel Generator for O(3)-Equivariant Deep Networks},
138
330
booktitle = {SIAM Conference on Applied and Computational Discrete Algorithms (ACDA25)},
139
331
chapter = {},
140
-
url={https://arxiv.org/abs/2501.13986}
332
+
url={https://arxiv.org/abs/2501.13986},
333
+
publisher={Society for Industrial and Applied Mathematics},
334
+
year={2025}
141
335
}
142
336
```
143
337
@@ -154,4 +348,4 @@ Copyright (c) 2025, The Regents of the University of California, through Lawrenc
154
348
155
349
If you have questions about your rights to use or distribute this software, please contact Berkeley Lab's Intellectual Property Office at IPO@lbl.gov.
156
350
157
-
NOTICE. This Software was developed under funding from the U.S. Department of Energy and the U.S. Government consequently retains certain rights. As such, the U.S. Government has been granted for itself and others acting on its behalf a paid-up, nonexclusive, irrevocable, worldwide license in the Software to reproduce, distribute copies to the public, prepare derivative works, and perform publicly and display publicly, and to permit others to do so.
351
+
NOTICE. This Software was developed under funding from the U.S. Department of Energy and the U.S. Government consequently retains certain rights. As such, the U.S. Government has been granted for itself and others acting on its behalf a paid-up, nonexclusive, irrevocable, worldwide license in the Software to reproduce, distribute copies to the public, prepare derivative works, and perform publicly and display publicly, and to permit others to do so.
0 commit comments