Fixed a bug in the xGEMM routine related to the event incorrectly set

This commit is contained in:
cnugteren 2016-05-15 16:10:56 +02:00
parent 9e36b3b20d
commit 716d7c67d9
3 changed files with 5 additions and 3 deletions

View file

@ -1,6 +1,7 @@
Development version (next release)
- Improved performance of large power-of-2 xGEMM kernels for AMD GPUs
- Fixed a bug in the xGEMM routine related to the event incorrectly set
Version 0.7.0
- Added exports to be able to create a DLL on Windows (thanks to Marco Hutter)

View file

@ -184,12 +184,13 @@ StatusCode Xgemm<T>::DoGemm(const Layout layout,
// Launches the kernel
auto eventKernel = Event();
status = RunKernel(kernel, global, local, eventKernel.pointer(), eventWaitList);
auto eventPointer = (!c_no_temp) ? eventKernel.pointer() : event_;
status = RunKernel(kernel, global, local, eventPointer, eventWaitList);
if (ErrorIn(status)) { return status; }
eventWaitList.push_back(eventKernel);
// Runs the post-processing kernel if needed
if (!c_no_temp) {
eventWaitList.push_back(eventKernel);
status = PadCopyTransposeMatrix(event_, eventWaitList,
m_ceiled, n_ceiled, m_ceiled, 0, c_temp,
c_one, c_two, c_ld, c_offset, c_buffer,

View file

@ -334,7 +334,7 @@ bool TestSimilarity(const T val1, const T val2) {
// Set the allowed error margin for floating-point comparisons
constexpr auto kErrorMarginRelative = T(0.025);
constexpr auto kErrorMarginAbsolute = T(1.0e-4);
constexpr auto kErrorMarginAbsolute = T(1.0e-3);
// Shortcut, handles infinities
if (val1 == val2) {