Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
395 changes: 158 additions & 237 deletions README.md

Large diffs are not rendered by default.

8 changes: 3 additions & 5 deletions benchmark/two-level-arch/test/tileop_api/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,9 @@ TileOP cases consumed by the LinxISA superproject AI workload flow. The active
case set is defined by `compile.all`; every row has one matching source file in
`src/`.

The sources were migrated from the last active direct-boot integration at
`8e2e1b54b0f0633231729fbcf9973cfd7e0a4823` into the rewritten `origin/main`
architecture layout based at `c9cfac34b353bfc1fd978ff7e2e15ce177670f0c`.
Retired top-level `test/`, `tests/`, and `benchmarks/` compatibility trees are
intentionally not restored.
The sources were migrated from the retired direct-boot integration into the
current architecture layout. Retired top-level `test/`, `tests/`, and
`benchmarks/` compatibility trees are intentionally not restored.

Use the in-repo Linx compiler explicitly:

Expand Down
19 changes: 19 additions & 0 deletions docs/DEVELOPING.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,22 @@ python3 docs/scripts/generate_deepseek_manual.py

`docs/build.sh` verifies that checked-in generated pages agree with their
catalogs and that all links in the built site resolve.

## Cross-stack parity

When a checkout is nested at `workloads/SuperNPUBench` in the Linx
superproject, validate the manual's operation inventory against the canonical
v0.57 state before publication:

```console
export LINX_ROOT=/path/to/linx-isa
python3 "$LINX_ROOT/tools/isa/build_golden.py" --profile v0.57 --check
python3 "$LINX_ROOT/tools/isa/validate_spec.py" --profile v0.57
python3 "$LINX_ROOT/tools/isa/check_canonical_v057.py" --root "$LINX_ROOT"
python3 "$LINX_ROOT/tools/isa/check_pto_v057_manifest.py" --root "$LINX_ROOT"
python3 docs/scripts/sync_golden_manual.py --check --linx-root "$LINX_ROOT"
```

Use the compiler and models pinned by that same superproject. Rebuild the
in-repository Clang before compiling representative cases, and run QEMU before
promoting an ELF to plain `gfsim -f <elf>`.
174 changes: 87 additions & 87 deletions docs/content/benchmarks/catalog.json

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="refresh" content="0; url=../broadcast/">
<link rel="canonical" href="../broadcast/">
<title>Broadcast</title>
</head>
<body>
<p>This benchmark page moved to <a href="../broadcast/">Broadcast</a>.</p>
</body>
</html>
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="refresh" content="0; url=../broadcast-vec-019/">
<link rel="canonical" href="../broadcast-vec-019/">
<title>Broadcast vec 019</title>
</head>
<body>
<p>This benchmark page moved to <a href="../broadcast-vec-019/">Broadcast vec 019</a>.</p>
</body>
</html>
Original file line number Diff line number Diff line change
Expand Up @@ -190,10 +190,12 @@ the spellings below use the canonical public operation names.
| [`TLOAD`](../../../../intrinsics/tload.md) | `TLOAD` | `benchmark/one-level-arch/kernels/broadcast/broadcast_vec_019_pto.hpp` |
| [`TSTORE`](../../../../intrinsics/tstore.md) | `TSTORE` | `benchmark/one-level-arch/kernels/broadcast/broadcast_vec_019_pto.hpp` |

## Active Build Commands
## Manifest Build Commands

Run these from `benchmark/one-level-arch/test/kernel/broadcast` after setting
`COMPILER_DIR` and `LINX_SYSROOT` as described in the build guide.
These commands are preserved from the active source manifest. They are
catalog evidence, not proof of compatibility with the current compiler.
Inspect them from `benchmark/one-level-arch/test/kernel/broadcast` and use the
promoted cases in the build guide for compiler and model validation.

| Manifest line | Command |
| ---: | --- |
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="refresh" content="0; url=../broadcast-vec-039/">
<link rel="canonical" href="../broadcast-vec-039/">
<title>Broadcast vec 039</title>
</head>
<body>
<p>This benchmark page moved to <a href="../broadcast-vec-039/">Broadcast vec 039</a>.</p>
</body>
</html>
Original file line number Diff line number Diff line change
Expand Up @@ -191,10 +191,12 @@ the spellings below use the canonical public operation names.
| [`TLOAD`](../../../../intrinsics/tload.md) | `TLOAD` | `benchmark/one-level-arch/kernels/broadcast/broadcast_vec_039_pto.hpp` |
| [`TSTORE`](../../../../intrinsics/tstore.md) | `TSTORE` | `benchmark/one-level-arch/kernels/broadcast/broadcast_vec_039_pto.hpp` |

## Active Build Commands
## Manifest Build Commands

Run these from `benchmark/one-level-arch/test/kernel/broadcast` after setting
`COMPILER_DIR` and `LINX_SYSROOT` as described in the build guide.
These commands are preserved from the active source manifest. They are
catalog evidence, not proof of compatibility with the current compiler.
Inspect them from `benchmark/one-level-arch/test/kernel/broadcast` and use the
promoted cases in the build guide for compiler and model validation.

| Manifest line | Command |
| ---: | --- |
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="refresh" content="0; url=../broadcast-vec-07/">
<link rel="canonical" href="../broadcast-vec-07/">
<title>Broadcast vec 07</title>
</head>
<body>
<p>This benchmark page moved to <a href="../broadcast-vec-07/">Broadcast vec 07</a>.</p>
</body>
</html>
Original file line number Diff line number Diff line change
Expand Up @@ -175,10 +175,12 @@ the spellings below use the canonical public operation names.
| [`TROWEXPAND`](../../../../intrinsics/trowexpand.md) | `TROWEXPAND` | `benchmark/one-level-arch/kernels/broadcast/broadcast_vec_07_pto.hpp` |
| [`TSTORE`](../../../../intrinsics/tstore.md) | `TSTORE` | `benchmark/one-level-arch/kernels/broadcast/broadcast_vec_07_pto.hpp` |

## Active Build Commands
## Manifest Build Commands

Run these from `benchmark/one-level-arch/test/kernel/broadcast` after setting
`COMPILER_DIR` and `LINX_SYSROOT` as described in the build guide.
These commands are preserved from the active source manifest. They are
catalog evidence, not proof of compatibility with the current compiler.
Inspect them from `benchmark/one-level-arch/test/kernel/broadcast` and use the
promoted cases in the build guide for compiler and model validation.

| Manifest line | Command |
| ---: | --- |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -227,10 +227,12 @@ the spellings below use the canonical public operation names.
| [`TREMS`](../../../../intrinsics/trems.md) | `TREMS` | `benchmark/one-level-arch/kernels/broadcast/broadcast_pto.hpp` |
| [`TSTORE`](../../../../intrinsics/tstore.md) | `TSTORE` | `benchmark/one-level-arch/kernels/broadcast/broadcast_pto.hpp` |

## Active Build Commands
## Manifest Build Commands

Run these from `benchmark/one-level-arch/test/kernel/broadcast` after setting
`COMPILER_DIR` and `LINX_SYSROOT` as described in the build guide.
These commands are preserved from the active source manifest. They are
catalog evidence, not proof of compatibility with the current compiler.
Inspect them from `benchmark/one-level-arch/test/kernel/broadcast` and use the
promoted cases in the build guide for compiler and model validation.

| Manifest line | Command |
| ---: | --- |
Expand Down
8 changes: 4 additions & 4 deletions docs/content/benchmarks/catalog/one-level/broadcast/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ This family contains **4** source implementations and

| Implementation | Source | Variants | Intrinsic surface |
| --- | --- | ---: | --- |
| [broadcast](broadcast-9f406253.md) | `benchmark/one-level-arch/test/kernel/broadcast/src/broadcast.cpp` | 3 | [`MGATHER`](../../../../intrinsics/mgather.md), [`TADD`](../../../../intrinsics/tadd.md), [`TCI`](../../../../intrinsics/tci.md), [`TDIVS`](../../../../intrinsics/tdivs.md), [`TEXPANDS`](../../../../intrinsics/texpands.md), [`TMULS`](../../../../intrinsics/tmuls.md), [`TREMS`](../../../../intrinsics/trems.md), [`TSTORE`](../../../../intrinsics/tstore.md) |
| [broadcast_vec_019](broadcast-vec-019-8713b1a8.md) | `benchmark/one-level-arch/test/kernel/broadcast/src/broadcast_vec_019.cpp` | 1 | [`TINSERT`](../../../../intrinsics/tinsert.md), [`TLOAD`](../../../../intrinsics/tload.md), [`TSTORE`](../../../../intrinsics/tstore.md) |
| [broadcast_vec_039](broadcast-vec-039-ac6775c3.md) | `benchmark/one-level-arch/test/kernel/broadcast/src/broadcast_vec_039.cpp` | 1 | [`TINSERT`](../../../../intrinsics/tinsert.md), [`TLOAD`](../../../../intrinsics/tload.md), [`TSTORE`](../../../../intrinsics/tstore.md) |
| [broadcast_vec_07](broadcast-vec-07-ba7002f4.md) | `benchmark/one-level-arch/test/kernel/broadcast/src/broadcast_vec_07.cpp` | 1 | [`TLOAD`](../../../../intrinsics/tload.md), [`TROWEXPAND`](../../../../intrinsics/trowexpand.md), [`TSTORE`](../../../../intrinsics/tstore.md) |
| [broadcast](broadcast.md) | `benchmark/one-level-arch/test/kernel/broadcast/src/broadcast.cpp` | 3 | [`MGATHER`](../../../../intrinsics/mgather.md), [`TADD`](../../../../intrinsics/tadd.md), [`TCI`](../../../../intrinsics/tci.md), [`TDIVS`](../../../../intrinsics/tdivs.md), [`TEXPANDS`](../../../../intrinsics/texpands.md), [`TMULS`](../../../../intrinsics/tmuls.md), [`TREMS`](../../../../intrinsics/trems.md), [`TSTORE`](../../../../intrinsics/tstore.md) |
| [broadcast_vec_019](broadcast-vec-019.md) | `benchmark/one-level-arch/test/kernel/broadcast/src/broadcast_vec_019.cpp` | 1 | [`TINSERT`](../../../../intrinsics/tinsert.md), [`TLOAD`](../../../../intrinsics/tload.md), [`TSTORE`](../../../../intrinsics/tstore.md) |
| [broadcast_vec_039](broadcast-vec-039.md) | `benchmark/one-level-arch/test/kernel/broadcast/src/broadcast_vec_039.cpp` | 1 | [`TINSERT`](../../../../intrinsics/tinsert.md), [`TLOAD`](../../../../intrinsics/tload.md), [`TSTORE`](../../../../intrinsics/tstore.md) |
| [broadcast_vec_07](broadcast-vec-07.md) | `benchmark/one-level-arch/test/kernel/broadcast/src/broadcast_vec_07.cpp` | 1 | [`TLOAD`](../../../../intrinsics/tload.md), [`TROWEXPAND`](../../../../intrinsics/trowexpand.md), [`TSTORE`](../../../../intrinsics/tstore.md) |
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="refresh" content="0; url=../concat-gather/">
<link rel="canonical" href="../concat-gather/">
<title>Concat gather</title>
</head>
<body>
<p>This benchmark page moved to <a href="../concat-gather/">Concat gather</a>.</p>
</body>
</html>
Original file line number Diff line number Diff line change
Expand Up @@ -280,10 +280,12 @@ the spellings below use the canonical public operation names.
| [`TSTORE`](../../../../intrinsics/tstore.md) | `TSTORE` | `benchmark/one-level-arch/kernels/concat/concat_gather_pto.hpp` |
| [`TSUB`](../../../../intrinsics/tsub.md) | `TSUB` | `benchmark/one-level-arch/kernels/concat/concat_gather_pto.hpp` |

## Active Build Commands
## Manifest Build Commands

Run these from `benchmark/one-level-arch/test/kernel/concat` after setting
`COMPILER_DIR` and `LINX_SYSROOT` as described in the build guide.
These commands are preserved from the active source manifest. They are
catalog evidence, not proof of compatibility with the current compiler.
Inspect them from `benchmark/one-level-arch/test/kernel/concat` and use the
promoted cases in the build guide for compiler and model validation.

| Manifest line | Command |
| ---: | --- |
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="refresh" content="0; url=../concat-scatter/">
<link rel="canonical" href="../concat-scatter/">
<title>Concat scatter</title>
</head>
<body>
<p>This benchmark page moved to <a href="../concat-scatter/">Concat scatter</a>.</p>
</body>
</html>
Original file line number Diff line number Diff line change
Expand Up @@ -245,10 +245,12 @@ the spellings below use the canonical public operation names.
| [`TMULS`](../../../../intrinsics/tmuls.md) | `TMULS` | `benchmark/one-level-arch/kernels/concat/concat_scatter_pto.hpp` |
| [`TSUB`](../../../../intrinsics/tsub.md) | `TSUB` | `benchmark/one-level-arch/kernels/concat/concat_scatter_pto.hpp` |

## Active Build Commands
## Manifest Build Commands

Run these from `benchmark/one-level-arch/test/kernel/concat` after setting
`COMPILER_DIR` and `LINX_SYSROOT` as described in the build guide.
These commands are preserved from the active source manifest. They are
catalog evidence, not proof of compatibility with the current compiler.
Inspect them from `benchmark/one-level-arch/test/kernel/concat` and use the
promoted cases in the build guide for compiler and model validation.

| Manifest line | Command |
| ---: | --- |
Expand Down
4 changes: 2 additions & 2 deletions docs/content/benchmarks/catalog/one-level/concat/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ This family contains **2** source implementations and

| Implementation | Source | Variants | Intrinsic surface |
| --- | --- | ---: | --- |
| [concat_gather](concat-gather-1c6990b2.md) | `benchmark/one-level-arch/test/kernel/concat/src/concat_gather.cpp` | 2 | [`MGATHER`](../../../../intrinsics/mgather.md), [`TADD`](../../../../intrinsics/tadd.md), [`TCI`](../../../../intrinsics/tci.md), [`TCVT`](../../../../intrinsics/tcvt.md), [`TDIVS`](../../../../intrinsics/tdivs.md), [`TEXPANDS`](../../../../intrinsics/texpands.md), [`TMULS`](../../../../intrinsics/tmuls.md), [`TSTORE`](../../../../intrinsics/tstore.md), [`TSUB`](../../../../intrinsics/tsub.md) |
| [concat_scatter](concat-scatter-29559c6c.md) | `benchmark/one-level-arch/test/kernel/concat/src/concat_scatter.cpp` | 2 | [`MSCATTER`](../../../../intrinsics/mscatter.md), [`TADD`](../../../../intrinsics/tadd.md), [`TCI`](../../../../intrinsics/tci.md), [`TCVT`](../../../../intrinsics/tcvt.md), [`TDIVS`](../../../../intrinsics/tdivs.md), [`TEXPANDS`](../../../../intrinsics/texpands.md), [`TLOAD`](../../../../intrinsics/tload.md), [`TMULS`](../../../../intrinsics/tmuls.md), [`TSUB`](../../../../intrinsics/tsub.md) |
| [concat_gather](concat-gather.md) | `benchmark/one-level-arch/test/kernel/concat/src/concat_gather.cpp` | 2 | [`MGATHER`](../../../../intrinsics/mgather.md), [`TADD`](../../../../intrinsics/tadd.md), [`TCI`](../../../../intrinsics/tci.md), [`TCVT`](../../../../intrinsics/tcvt.md), [`TDIVS`](../../../../intrinsics/tdivs.md), [`TEXPANDS`](../../../../intrinsics/texpands.md), [`TMULS`](../../../../intrinsics/tmuls.md), [`TSTORE`](../../../../intrinsics/tstore.md), [`TSUB`](../../../../intrinsics/tsub.md) |
| [concat_scatter](concat-scatter.md) | `benchmark/one-level-arch/test/kernel/concat/src/concat_scatter.cpp` | 2 | [`MSCATTER`](../../../../intrinsics/mscatter.md), [`TADD`](../../../../intrinsics/tadd.md), [`TCI`](../../../../intrinsics/tci.md), [`TCVT`](../../../../intrinsics/tcvt.md), [`TDIVS`](../../../../intrinsics/tdivs.md), [`TEXPANDS`](../../../../intrinsics/texpands.md), [`TLOAD`](../../../../intrinsics/tload.md), [`TMULS`](../../../../intrinsics/tmuls.md), [`TSUB`](../../../../intrinsics/tsub.md) |
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="refresh" content="0; url=../hashtable-lookup-simd/">
<link rel="canonical" href="../hashtable-lookup-simd/">
<title>Tile-parallel hash-table lookup</title>
</head>
<body>
<p>This benchmark page moved to <a href="../hashtable-lookup-simd/">Tile-parallel hash-table lookup</a>.</p>
</body>
</html>
Original file line number Diff line number Diff line change
Expand Up @@ -318,10 +318,12 @@ the spellings below use the canonical public operation names.
| [`TSTORE`](../../../../intrinsics/tstore.md) | `TSTORE` | `benchmark/one-level-arch/kernels/control/hashtable_lookup_simd.hpp` |
| [`TXOR`](../../../../intrinsics/txor.md) | `TXOR` | `benchmark/one-level-arch/kernels/control/hashtable_lookup_simd.hpp` |

## Active Build Commands
## Manifest Build Commands

Run these from `benchmark/one-level-arch/test/kernel/control` after setting
`COMPILER_DIR` and `LINX_SYSROOT` as described in the build guide.
These commands are preserved from the active source manifest. They are
catalog evidence, not proof of compatibility with the current compiler.
Inspect them from `benchmark/one-level-arch/test/kernel/control` and use the
promoted cases in the build guide for compiler and model validation.

| Manifest line | Command |
| ---: | --- |
Expand All @@ -337,9 +339,6 @@ Run these from `benchmark/one-level-arch/test/kernel/control` after setting
The benchmark build or run path uses these checked-in generators/data inputs:

- `benchmark/one-level-arch/test/kernel/control/hashtable_lookup_simd/data_obj/build_data_obj.sh`
- `benchmark/one-level-arch/test/kernel/control/hashtable_lookup_simd/data_obj/inserted_slot.data`
- `benchmark/one-level-arch/test/kernel/control/hashtable_lookup_simd/data_obj/lookup_keys.data`
- `benchmark/one-level-arch/test/kernel/control/hashtable_lookup_simd/data_obj/lookup_values.data`
- `benchmark/one-level-arch/test/kernel/control/hashtable_lookup_simd/data_obj/probe_statistics.md`
- `benchmark/one-level-arch/test/kernel/control/hkv/data_obj/build_data_obj.sh`

Expand Down
2 changes: 1 addition & 1 deletion docs/content/benchmarks/catalog/one-level/control/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ This family contains **1** source implementations and

| Implementation | Source | Variants | Intrinsic surface |
| --- | --- | ---: | --- |
| [hashtable_lookup_simd](hashtable-lookup-simd-5bc02e85.md) | `benchmark/one-level-arch/test/kernel/control/hashtable_lookup_simd/hashtable_lookup_simd.cpp` | 6 | [`MGATHER`](../../../../intrinsics/mgather.md), [`TADD`](../../../../intrinsics/tadd.md), [`TADDS`](../../../../intrinsics/tadds.md), [`TAND`](../../../../intrinsics/tand.md), [`TCMP`](../../../../intrinsics/tcmp.md), [`TCVT`](../../../../intrinsics/tcvt.md), [`TEXPANDS`](../../../../intrinsics/texpands.md), [`TLOAD`](../../../../intrinsics/tload.md), [`TMULS`](../../../../intrinsics/tmuls.md), [`TOR`](../../../../intrinsics/tor.md), [`TREM`](../../../../intrinsics/trem.md), [`TSEL`](../../../../intrinsics/tsel.md), [`TSHLS`](../../../../intrinsics/tshls.md), [`TSHRS`](../../../../intrinsics/tshrs.md), [`TSTORE`](../../../../intrinsics/tstore.md), [`TXOR`](../../../../intrinsics/txor.md) |
| [hashtable_lookup_simd](hashtable-lookup-simd.md) | `benchmark/one-level-arch/test/kernel/control/hashtable_lookup_simd/hashtable_lookup_simd.cpp` | 6 | [`MGATHER`](../../../../intrinsics/mgather.md), [`TADD`](../../../../intrinsics/tadd.md), [`TADDS`](../../../../intrinsics/tadds.md), [`TAND`](../../../../intrinsics/tand.md), [`TCMP`](../../../../intrinsics/tcmp.md), [`TCVT`](../../../../intrinsics/tcvt.md), [`TEXPANDS`](../../../../intrinsics/texpands.md), [`TLOAD`](../../../../intrinsics/tload.md), [`TMULS`](../../../../intrinsics/tmuls.md), [`TOR`](../../../../intrinsics/tor.md), [`TREM`](../../../../intrinsics/trem.md), [`TSEL`](../../../../intrinsics/tsel.md), [`TSHLS`](../../../../intrinsics/tshls.md), [`TSHRS`](../../../../intrinsics/tshrs.md), [`TSTORE`](../../../../intrinsics/tstore.md), [`TXOR`](../../../../intrinsics/txor.md) |
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="refresh" content="0; url=../aux-fi/">
<link rel="canonical" href="../aux-fi/">
<title>Aux fi</title>
</head>
<body>
<p>This benchmark page moved to <a href="../aux-fi/">Aux fi</a>.</p>
</body>
</html>
Original file line number Diff line number Diff line change
Expand Up @@ -141,10 +141,12 @@ the spellings below use the canonical public operation names.
| [`TSEL`](../../../../intrinsics/tsel.md) | `TSEL` | `benchmark/one-level-arch/kernels/deepseek/moe/group_count_aux_fi_pto.hpp` |
| [`TSTORE`](../../../../intrinsics/tstore.md) | `TSTORE` | `benchmark/one-level-arch/kernels/deepseek/moe/group_count_aux_fi_pto.hpp` |

## Active Build Commands
## Manifest Build Commands

Run these from `benchmark/one-level-arch/test/kernel/deepseek` after setting
`COMPILER_DIR` and `LINX_SYSROOT` as described in the build guide.
These commands are preserved from the active source manifest. They are
catalog evidence, not proof of compatibility with the current compiler.
Inspect them from `benchmark/one-level-arch/test/kernel/deepseek` and use the
promoted cases in the build guide for compiler and model validation.

| Manifest line | Command |
| ---: | --- |
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="refresh" content="0; url=../batched-transpose/">
<link rel="canonical" href="../batched-transpose/">
<title>Batched transpose</title>
</head>
<body>
<p>This benchmark page moved to <a href="../batched-transpose/">Batched transpose</a>.</p>
</body>
</html>
Loading