EnzymeAD / EnzymeAD/Enzyme-JAX

filled syrk -> syrk if only specific triangle accessed

Open
#1,652 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
MLIR
Stars
131
Forks
53
Avg merge
1d 10h
Merged PRs (30d)
193

Description

```mlir
func.func @main4(%arg0: tensor<64x32xf32>) -> tensor<64x64xf32> {
%cst = stablehlo.constant dense<1.000000e+00> : tensor
%cst_0 = stablehlo.constant {enzymexla.finite = [#enzymexla], enzymexla.no_nan = [#enzymexla]} dense<5.000000e-01> : tensor
%cst_1 = stablehlo.constant dense<3.000000e+00> : tensor<64x64xf32>
%0 = enzymexla.blas.syrk %arg0, %cst_1, %cst_0, %cst {fill, uplo = #enzymexla.uplo} : (tensor<64x32xf32>, tensor<64x64xf32>, tensor, tensor) -> tensor<64x64xf32>
return %0 : tensor<64x64xf32>
}
```

If all users for the syrk only access the specified uplo, we don't need to fill the full matrix. current ops that would support this

- [ ] syrk
- [ ] symm
- [ ] trmm
- [ ] triangular_solve

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.