Skip to content

Commit a5d0fe5

Browse files
committed
Modified changelog before release.
1 parent b80d15c commit a5d0fe5

11 files changed

Lines changed: 27 additions & 101 deletions

File tree

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
## Latest Changes
22

3+
### v0.6.5 (2026-03-22)
4+
This release brings `ir_mul` layout support for
5+
OpenEquivariance. Pass the parameter
6+
`layout='ir_mul'` to any `TPProblem` instance to use
7+
a transposed layout for the input and output
8+
irreps.
9+
310
### v0.6.4 (2026-03-05)
411
Bugfix: added missing MLIR lowerings for
512
a pair of JAX primitives (thanks @teddykoker!)

openequivariance/openequivariance/benchmark/benchmark_utils.py

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -114,9 +114,7 @@ def benchmark_forward(
114114
flops = flops_forward(problem, batch_size=batch_size)
115115

116116
# DATA
117-
memory_streamed = memory_streamed_forward(
118-
problem, batch_size=batch_size
119-
)
117+
memory_streamed = memory_streamed_forward(problem, batch_size=batch_size)
120118

121119
result |= calculate_performance_statistics(
122120
problem=problem,
@@ -172,9 +170,7 @@ def benchmark_backward(
172170

173171
flops = flops_backward(tpp=problem, batch_size=batch_size)
174172

175-
memory_streamed = memory_streamed_backward(
176-
tpp=problem, batch_size=batch_size
177-
)
173+
memory_streamed = memory_streamed_backward(tpp=problem, batch_size=batch_size)
178174

179175
result |= calculate_performance_statistics(
180176
problem=problem,
@@ -231,9 +227,7 @@ def benchmark_double_backward(
231227

232228
flops = flops_backward(tpp=problem, batch_size=batch_size)
233229

234-
memory_streamed = memory_streamed_backward(
235-
tpp=problem, batch_size=batch_size
236-
)
230+
memory_streamed = memory_streamed_backward(tpp=problem, batch_size=batch_size)
237231

238232
result |= calculate_performance_statistics(
239233
problem=problem,

openequivariance/openequivariance/benchmark/metrics.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,7 @@
99
logger = getLogger()
1010

1111

12-
def memory_streamed_forward(
13-
tpp: TPProblem, batch_size: int
14-
) -> dict[str, int]:
12+
def memory_streamed_forward(tpp: TPProblem, batch_size: int) -> dict[str, int]:
1513
"""
1614
This represents an absolute minimum amount of memory that could be streamed on an ideal machine
1715
It returns the number of bytes streamed total and from each source
@@ -69,9 +67,7 @@ def flops_forward(tpp: TPProblem, batch_size: int) -> dict:
6967
)
7068

7169
flops_count["CG_decomposition"] *= 3 * batch_size
72-
flops_count["linear_combination"] *= (
73-
batch_size # Weights do not require FMA here
74-
)
70+
flops_count["linear_combination"] *= batch_size # Weights do not require FMA here
7571

7672
flops_count["total"] = sum(flops_count.values())
7773
return flops_count

openequivariance/openequivariance/benchmark/plotting/plot_layout.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,9 @@ def _dtype_sort_key(dtype_name: str) -> int:
4949

5050
dtype_order = sorted(dtype_order, key=_dtype_sort_key)
5151

52-
directions = [d for d in ["forward", "backward"] if any(d in grouped[x] for x in grouped)]
52+
directions = [
53+
d for d in ["forward", "backward"] if any(d in grouped[x] for x in grouped)
54+
]
5355
if not directions:
5456
raise ValueError("No forward/backward layout benchmark entries found to plot.")
5557

@@ -98,7 +100,9 @@ def _dtype_sort_key(dtype_name: str) -> int:
98100
fig.supxlabel("Problem")
99101

100102
handles, labels = axs[0][0].get_legend_handles_labels()
101-
unique = [(h, l) for i, (h, l) in enumerate(zip(handles, labels)) if l not in labels[:i]]
103+
unique = [
104+
(h, l) for i, (h, l) in enumerate(zip(handles, labels)) if l not in labels[:i]
105+
]
102106
if unique:
103107
axs[0][0].legend(*zip(*unique))
104108

@@ -114,6 +118,11 @@ def _dtype_sort_key(dtype_name: str) -> int:
114118
if values["mul_ir"] > 0:
115119
ratios.append(values["ir_mul"] / values["mul_ir"])
116120
if ratios:
117-
stats = [np.min(ratios), np.mean(ratios), np.median(ratios), np.max(ratios)]
121+
stats = [
122+
np.min(ratios),
123+
np.mean(ratios),
124+
np.median(ratios),
125+
np.max(ratios),
126+
]
118127
stats_fmt = [f"{val:.3f}" for val in stats]
119128
print("\t".join([dtype, direction] + stats_fmt))

openequivariance/openequivariance/core/ConvolutionBase.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import copy
2-
31
import numpy as np
42

53
from openequivariance.core.logging import bcolors, getLogger

openequivariance/openequivariance/core/LoopUnrollTP.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
import json
22

3-
import numpy as np
4-
53
from openequivariance.core.logging import getLogger
64
from openequivariance.core.ComputationSchedule import (
75
ComputationSchedule,

openequivariance/openequivariance/core/TensorProductBase.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,4 +180,3 @@ def benchmark_double_backward(
180180
mode=mode,
181181
kernel_names=kernel_names,
182182
)
183-

openequivariance/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "scikit_build_core.build"
44

55
[project]
66
name = "openequivariance"
7-
version = "0.6.4"
7+
version = "0.6.5"
88
authors = [
99
{ name="Austin Glover" },
1010
{ name="Vivek Bharadwaj" },

openequivariance_extjax/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ build-backend = "scikit_build_core.build"
88

99
[project]
1010
name = "openequivariance_extjax"
11-
version = "0.6.4"
11+
version = "0.6.5"
1212

1313
authors = [
1414
{ name="Austin Glover" },

tests/input_validation_test.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -140,16 +140,14 @@ def test_cpp_checks_forward_dtype(executable_and_buffers, subtests):
140140
executable(*buffers)
141141

142142

143-
def test_ir_mul_rejects_uvw_problem(dtype):
143+
def test_ir_mul_rejects_uvw_problem():
144144
problem = TPProblem(
145145
"5x5e",
146146
"1x3e",
147147
"5x5e",
148148
[(0, 0, 0, "uvw", True)],
149149
shared_weights=False,
150150
internal_weights=False,
151-
irrep_dtype=dtype,
152-
weight_dtype=dtype,
153151
layout="ir_mul",
154152
)
155153

0 commit comments

Comments
 (0)