diff --git a/src/api/c/assign.cpp b/src/api/c/assign.cpp index 4dda94086b..f863214759 100644 --- a/src/api/c/assign.cpp +++ b/src/api/c/assign.cpp @@ -127,7 +127,10 @@ af_err af_assign_seq(af_array *out, AF_CHECK(af_assign_seq(&tmp_out, tmp_in, ndims, index, rhs)); AF_CHECK(af_moddims(out, tmp_out, lInfo.ndims(), lInfo.dims().get())); AF_CHECK(af_release_array(tmp_in)); - AF_CHECK(af_release_array(tmp_out)); + // This can run into a double free issue if tmp_in == tmp_out + // The condition ensures release only if both are different + // Issue found on Tegra X1 + if(tmp_in != tmp_out) AF_CHECK(af_release_array(tmp_out)); return AF_SUCCESS; } @@ -244,7 +247,10 @@ af_err af_assign_gen(af_array *out, AF_CHECK(af_assign_gen(&tmp_out, tmp_in, ndims, indexs, rhs_)); AF_CHECK(af_moddims(out, tmp_out, lInfo.ndims(), lInfo.dims().get())); AF_CHECK(af_release_array(tmp_in)); - AF_CHECK(af_release_array(tmp_out)); + // This can run into a double free issue if tmp_in == tmp_out + // The condition ensures release only if both are different + // Issue found on Tegra X1 + if(tmp_in != tmp_out) AF_CHECK(af_release_array(tmp_out)); return AF_SUCCESS; } diff --git a/src/backend/cpu/scan_by_key.cpp b/src/backend/cpu/scan_by_key.cpp index d00db6cceb..3f0aad80a9 100644 --- a/src/backend/cpu/scan_by_key.cpp +++ b/src/backend/cpu/scan_by_key.cpp @@ -31,6 +31,8 @@ namespace cpu kernel::scan_dim_by_key func4(inclusive_scan); in.eval(); + key.eval(); + switch (in.ndims()) { case 1: getQueue().enqueue(func1, out, 0, key, 0, in, 0, dim); diff --git a/src/backend/cuda/kernel/nearest_neighbour.hpp b/src/backend/cuda/kernel/nearest_neighbour.hpp index b76c70ee2d..eb2bebed80 100644 --- a/src/backend/cuda/kernel/nearest_neighbour.hpp +++ b/src/backend/cuda/kernel/nearest_neighbour.hpp @@ -411,8 +411,8 @@ __global__ void select_matches( s_dist[sid] = dist; s_idx[sid] = s_idx[sid + i]; } - __syncthreads(); } + __syncthreads(); } // Store best matches and indexes to training dataset diff --git a/src/backend/opencl/kernel/bilateral.hpp b/src/backend/opencl/kernel/bilateral.hpp index 0493389645..2dc2a5932d 100644 --- a/src/backend/opencl/kernel/bilateral.hpp +++ b/src/backend/opencl/kernel/bilateral.hpp @@ -50,7 +50,6 @@ void bilateral(Param out, const Param in, float s_sigma, float c_sigma) std::call_once( compileFlags[device], [device] () { bool use_native_exp = getActivePlatform() != AFCL_PLATFORM_POCL; - printf("NATIVE_EXP: %d\n", use_native_exp); std::ostringstream options; options << " -D inType=" << dtype_traits::getName() << " -D outType=" << dtype_traits::getName();