diff options
author | Cedric Nugteren <web@cedricnugteren.nl> | 2023-03-25 20:24:40 +0100 |
---|---|---|
committer | Cedric Nugteren <web@cedricnugteren.nl> | 2023-03-25 20:24:40 +0100 |
commit | 9eca896b05d4b5e46a9837dde581e20474efe318 (patch) | |
tree | 05c97a6eca0627dbfae004dd407e71c2d6a2ea46 | |
parent | ab5092dd26a3f95e57c3fba3be8315c024c72eed (diff) |
Fix documentation bug w.r.t. ld values and matrix layout
-rw-r--r-- | CHANGELOG | 1 | ||||
-rw-r--r-- | doc/api.md | 24 | ||||
-rwxr-xr-x | scripts/generator/generator.py | 8 |
3 files changed, 17 insertions, 16 deletions
@@ -5,6 +5,7 @@ Development version (next version) * Toggle OpenCL kernel compilation options for Adreno * New preprocessor directive RELAX_WORKGROUP_SIZE - Fixed a bug in handling of #undef in CLBlast loop unrolling and array-to-register mapping functions +- Fixed a documentation bug in the 'ld' requirements - Added tuned parameters for various devices (see doc/tuning.md) Version 1.5.3 @@ -2260,8 +2260,8 @@ Arguments to GEMM: Requirements for GEMM: -* When `transpose_a == Transpose::kNo`, then `a_ld` must be at least `m`, otherwise `a_ld` must be at least `k`. -* When `transpose_b == Transpose::kNo`, then `b_ld` must be at least `k`, otherwise `b_ld` must be at least `n`. +* When `(transpose_a == Transpose::kNo && layout == Layout::kColMajor) || (transpose_a == Transpose::kYes && layout == Layout::kRowMajor)`, then `a_ld` must be at least `m`, otherwise `a_ld` must be at least `k`. +* When `(transpose_b == Transpose::kNo && layout == Layout::kColMajor) || (transpose_b == Transpose::kYes && layout == Layout::kRowMajor)`, then `b_ld` must be at least `k`, otherwise `b_ld` must be at least `n`. * The value of `c_ld` must be at least `m`. @@ -2500,7 +2500,7 @@ Arguments to SYRK: Requirements for SYRK: -* When `transpose == Transpose::kNo`, then `a_ld` must be at least `n`, otherwise `a_ld` must be at least `k`. +* When `(transpose == Transpose::kNo && layout == Layout::kColMajor) || (transpose == Transpose::kYes && layout == Layout::kRowMajor)`, then `a_ld` must be at least `n`, otherwise `a_ld` must be at least `k`. * The value of `c_ld` must be at least `m`. @@ -2560,7 +2560,7 @@ Arguments to HERK: Requirements for HERK: -* When `transpose == Transpose::kNo`, then `a_ld` must be at least `n`, otherwise `a_ld` must be at least `k`. +* When `(transpose == Transpose::kNo && layout == Layout::kColMajor) || (transpose == Transpose::kYes && layout == Layout::kRowMajor)`, then `a_ld` must be at least `n`, otherwise `a_ld` must be at least `k`. * The value of `c_ld` must be at least `m`. @@ -2650,8 +2650,8 @@ Arguments to SYR2K: Requirements for SYR2K: -* When `transpose == Transpose::kNo`, then `a_ld` must be at least `n`, otherwise `a_ld` must be at least `k`. -* When `transpose == Transpose::kNo`, then `b_ld` must be at least `n`, otherwise `b_ld` must be at least `k`. +* When `(transpose == Transpose::kNo && layout == Layout::kColMajor) || (transpose == Transpose::kYes && layout == Layout::kRowMajor)`, then `a_ld` must be at least `n`, otherwise `a_ld` must be at least `k`. +* When `(transpose == Transpose::kNo && layout == Layout::kColMajor) || (transpose == Transpose::kYes && layout == Layout::kRowMajor)`, then `b_ld` must be at least `n`, otherwise `b_ld` must be at least `k`. * The value of `c_ld` must be at least `n`. @@ -2717,8 +2717,8 @@ Arguments to HER2K: Requirements for HER2K: -* When `transpose == Transpose::kNo`, then `a_ld` must be at least `n`, otherwise `a_ld` must be at least `k`. -* When `transpose == Transpose::kNo`, then `b_ld` must be at least `n`, otherwise `b_ld` must be at least `k`. +* When `(transpose == Transpose::kNo && layout == Layout::kColMajor) || (transpose == Transpose::kYes && layout == Layout::kRowMajor)`, then `a_ld` must be at least `n`, otherwise `a_ld` must be at least `k`. +* When `(transpose == Transpose::kNo && layout == Layout::kColMajor) || (transpose == Transpose::kYes && layout == Layout::kRowMajor)`, then `b_ld` must be at least `n`, otherwise `b_ld` must be at least `k`. * The value of `c_ld` must be at least `n`. @@ -3370,8 +3370,8 @@ Arguments to GEMMBATCHED: Requirements for GEMMBATCHED: -* When `transpose_a == Transpose::kNo`, then `a_ld` must be at least `m`, otherwise `a_ld` must be at least `k`. -* When `transpose_b == Transpose::kNo`, then `b_ld` must be at least `k`, otherwise `b_ld` must be at least `n`. +* When `(transpose_a == Transpose::kNo && layout == Layout::kColMajor) || (transpose_a == Transpose::kYes && layout == Layout::kRowMajor)`, then `a_ld` must be at least `m`, otherwise `a_ld` must be at least `k`. +* When `(transpose_b == Transpose::kNo && layout == Layout::kColMajor) || (transpose_b == Transpose::kYes && layout == Layout::kRowMajor)`, then `b_ld` must be at least `k`, otherwise `b_ld` must be at least `n`. * The value of `c_ld` must be at least `m`. @@ -3472,8 +3472,8 @@ Arguments to GEMMSTRIDEDBATCHED: Requirements for GEMMSTRIDEDBATCHED: -* When `transpose_a == Transpose::kNo`, then `a_ld` must be at least `m`, otherwise `a_ld` must be at least `k`. -* When `transpose_b == Transpose::kNo`, then `b_ld` must be at least `k`, otherwise `b_ld` must be at least `n`. +* When `(transpose_a == Transpose::kNo && layout == Layout::kColMajor) || (transpose_a == Transpose::kYes && layout == Layout::kRowMajor)`, then `a_ld` must be at least `m`, otherwise `a_ld` must be at least `k`. +* When `(transpose_b == Transpose::kNo && layout == Layout::kColMajor) || (transpose_b == Transpose::kYes && layout == Layout::kRowMajor)`, then `b_ld` must be at least `k`, otherwise `b_ld` must be at least `n`. * The value of `c_ld` must be at least `m`. diff --git a/scripts/generator/generator.py b/scripts/generator/generator.py index 875b1a55..3d66960f 100755 --- a/scripts/generator/generator.py +++ b/scripts/generator/generator.py @@ -59,13 +59,13 @@ ald_m = "The value of `a_ld` must be at least `m`." ald_n = "The value of `a_ld` must be at least `n`." ald_k_one = "The value of `a_ld` must be at least `k + 1`." ald_kl_ku_one = "The value of `a_ld` must be at least `kl + ku + 1`." -ald_transa_m_k = "When `transpose_a == Transpose::kNo`, then `a_ld` must be at least `m`, otherwise `a_ld` must be at least `k`." -ald_trans_n_k = "When `transpose == Transpose::kNo`, then `a_ld` must be at least `n`, otherwise `a_ld` must be at least `k`." +ald_transa_m_k = "When `(transpose_a == Transpose::kNo && layout == Layout::kColMajor) || (transpose_a == Transpose::kYes && layout == Layout::kRowMajor)`, then `a_ld` must be at least `m`, otherwise `a_ld` must be at least `k`." +ald_trans_n_k = "When `(transpose == Transpose::kNo && layout == Layout::kColMajor) || (transpose == Transpose::kYes && layout == Layout::kRowMajor)`, then `a_ld` must be at least `n`, otherwise `a_ld` must be at least `k`." ald_side_m_n = "When `side = Side::kLeft` then `a_ld` must be at least `m`, otherwise `a_ld` must be at least `n`." bld_m = "The value of `b_ld` must be at least `m`." bld_n = "The value of `b_ld` must be at least `n`." -bld_transb_k_n = "When `transpose_b == Transpose::kNo`, then `b_ld` must be at least `k`, otherwise `b_ld` must be at least `n`." -bld_trans_n_k = "When `transpose == Transpose::kNo`, then `b_ld` must be at least `n`, otherwise `b_ld` must be at least `k`." +bld_transb_k_n = "When `(transpose_b == Transpose::kNo && layout == Layout::kColMajor) || (transpose_b == Transpose::kYes && layout == Layout::kRowMajor)`, then `b_ld` must be at least `k`, otherwise `b_ld` must be at least `n`." +bld_trans_n_k = "When `(transpose == Transpose::kNo && layout == Layout::kColMajor) || (transpose == Transpose::kYes && layout == Layout::kRowMajor)`, then `b_ld` must be at least `n`, otherwise `b_ld` must be at least `k`." cld_m = "The value of `c_ld` must be at least `m`." cld_n = "The value of `c_ld` must be at least `n`." |