summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCedric Nugteren <web@cedricnugteren.nl>2017-05-12 17:43:56 -0700
committerCedric Nugteren <web@cedricnugteren.nl>2017-05-12 17:43:56 -0700
commit86e8df60f1598760511b059b42a9e4f9dddfa150 (patch)
treed97aea0277c4fdaf044308a774710438b0c1727e
parent81d9ed3946a8ae3c9371d4ffd3158c4c289729f0 (diff)
Fixed a bug in the TRSM routine; tests now pass
-rw-r--r--CHANGELOG1
-rw-r--r--src/routines/level3/xtrsm.cpp10
2 files changed, 6 insertions, 5 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 3f07aa18..494a437e 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,6 @@
Development (next version)
+- Fixed a bug in the TRSM routine for alpha != 1
- Performance reports are now external at https://cnugteren.github.io/clblast
- Various minor fixes and enhancements
- Added tuned parameters for various devices (see README)
diff --git a/src/routines/level3/xtrsm.cpp b/src/routines/level3/xtrsm.cpp
index 4378ca94..c1c07d10 100644
--- a/src/routines/level3/xtrsm.cpp
+++ b/src/routines/level3/xtrsm.cpp
@@ -138,7 +138,7 @@ void Xtrsm<T>::TrsmColMajor(const Side side, const Triangle triangle,
DoGemm(Layout::kColMajor, a_transpose, Transpose::kNo,
m - i - block_size, n, block_size, ConstantNegOne<T>(),
a_buffer, this_a_offset, a_ld,
- x_buffer, x_offset + i, x_ld, ConstantOne<T>(),
+ x_buffer, x_offset + i, x_ld, gemm_alpha,
b_buffer, b_offset + i + block_size, b_ld);
}
}
@@ -159,7 +159,7 @@ void Xtrsm<T>::TrsmColMajor(const Side side, const Triangle triangle,
DoGemm(Layout::kColMajor, a_transpose, Transpose::kNo,
i, n, block_size, ConstantNegOne<T>(),
a_buffer, this_a_offset, a_ld,
- x_buffer, x_offset + i, x_ld, ConstantOne<T>(),
+ x_buffer, x_offset + i, x_ld, gemm_alpha,
b_buffer, b_offset, b_ld);
}
}
@@ -182,9 +182,9 @@ void Xtrsm<T>::TrsmColMajor(const Side side, const Triangle triangle,
if (i - static_cast<int>(block_size) < 0) { break; }
const auto this_a_offset = (a_transpose == Transpose::kNo) ? i : i * a_ld;
DoGemm(Layout::kColMajor, Transpose::kNo, a_transpose,
- m, i, current_block_size, ConstantNegOne<T>(),
+ m, i, block_size, ConstantNegOne<T>(),
x_buffer, x_offset + i * x_ld, x_ld,
- a_buffer, this_a_offset, a_ld, ConstantOne<T>(),
+ a_buffer, this_a_offset, a_ld, gemm_alpha,
b_buffer, b_offset, b_ld);
}
}
@@ -204,7 +204,7 @@ void Xtrsm<T>::TrsmColMajor(const Side side, const Triangle triangle,
DoGemm(Layout::kColMajor, Transpose::kNo, a_transpose,
m, n - i - block_size, block_size, ConstantNegOne<T>(),
x_buffer, x_offset + i * x_ld, x_ld,
- a_buffer, this_a_offset, a_ld, ConstantOne<T>(),
+ a_buffer, this_a_offset, a_ld, gemm_alpha,
b_buffer, b_offset + (i + block_size) * b_ld, b_ld);
}
}