From 2a798152d4bdcd86d1233c5b4ce169916aa76a17 Mon Sep 17 00:00:00 2001 From: Ben Sander Date: Mon, 8 Aug 2016 12:07:12 -0500 Subject: [PATCH] Move copy kernel templates into hip_memory.cpp Change-Id: I862529f3fa8232372c6bacaa5d36f035bbdd32a1 --- include/hcc_detail/hip_hcc.h | 73 ------------------------------------ src/hip_memory.cpp | 73 ++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+), 73 deletions(-) diff --git a/include/hcc_detail/hip_hcc.h b/include/hcc_detail/hip_hcc.h index fb8e11aa14..65959fd7d0 100644 --- a/include/hcc_detail/hip_hcc.h +++ b/include/hcc_detail/hip_hcc.h @@ -671,82 +671,9 @@ ihipCtx_t * ihipGetPrimaryCtx(unsigned deviceIndex); extern void ihipSetTs(hipEvent_t e); -template -hc::completion_future ihipMemcpyKernel(hipStream_t, T*, const T*, size_t); - -template -hc::completion_future ihipMemsetKernel(hipStream_t, T*, T, size_t); hipStream_t ihipSyncAndResolveStream(hipStream_t); -template - -hc::completion_future -ihipMemsetKernel(hipStream_t stream, T * ptr, T val, size_t sizeBytes) -{ - int wg = std::min((unsigned)8, stream->getDevice()->_compute_units); - const int threads_per_wg = 256; - - int threads = wg * threads_per_wg; - if (threads > sizeBytes) { - threads = ((sizeBytes + threads_per_wg - 1) / threads_per_wg) * threads_per_wg; - } - hc::extent<1> ext(threads); - auto ext_tile = ext.tile(threads_per_wg); - - hc::completion_future cf = - hc::parallel_for_each( - stream->_av, - ext_tile, - [=] (hc::tiled_index<1> idx) - __attribute__((hc)) - { - int offset = amp_get_global_id(0); - // TODO-HCC - change to hc_get_local_size() - int stride = amp_get_local_size(0) * hc_get_num_groups(0) ; - - for (int i=offset; i -hc::completion_future -ihipMemcpyKernel(hipStream_t stream, T * c, const T * a, size_t sizeBytes) -{ - int wg = std::min((unsigned)8, stream->getDevice()->_compute_units); - const int threads_per_wg = 256; - - int threads = wg * threads_per_wg; - if (threads > sizeBytes) { - threads = ((sizeBytes + threads_per_wg - 1) / threads_per_wg) * threads_per_wg; - } - - - hc::extent<1> ext(threads); - auto ext_tile = ext.tile(threads_per_wg); - - hc::completion_future cf = - hc::parallel_for_each( - stream->_av, - ext_tile, - [=] (hc::tiled_index<1> idx) - __attribute__((hc)) - { - int offset = amp_get_global_id(0); - // TODO-HCC - change to hc_get_local_size() - int stride = amp_get_local_size(0) * hc_get_num_groups(0) ; - - for (int i=offset; i +hc::completion_future +ihipMemsetKernel(hipStream_t stream, T * ptr, T val, size_t sizeBytes) +{ + int wg = std::min((unsigned)8, stream->getDevice()->_compute_units); + const int threads_per_wg = 256; + + int threads = wg * threads_per_wg; + if (threads > sizeBytes) { + threads = ((sizeBytes + threads_per_wg - 1) / threads_per_wg) * threads_per_wg; + } + + + hc::extent<1> ext(threads); + auto ext_tile = ext.tile(threads_per_wg); + + hc::completion_future cf = + hc::parallel_for_each( + stream->_av, + ext_tile, + [=] (hc::tiled_index<1> idx) + __attribute__((hc)) + { + int offset = amp_get_global_id(0); + // TODO-HCC - change to hc_get_local_size() + int stride = amp_get_local_size(0) * hc_get_num_groups(0) ; + + for (int i=offset; i +hc::completion_future +ihipMemcpyKernel(hipStream_t stream, T * c, const T * a, size_t sizeBytes) +{ + int wg = std::min((unsigned)8, stream->getDevice()->_compute_units); + const int threads_per_wg = 256; + + int threads = wg * threads_per_wg; + if (threads > sizeBytes) { + threads = ((sizeBytes + threads_per_wg - 1) / threads_per_wg) * threads_per_wg; + } + + + hc::extent<1> ext(threads); + auto ext_tile = ext.tile(threads_per_wg); + + hc::completion_future cf = + hc::parallel_for_each( + stream->_av, + ext_tile, + [=] (hc::tiled_index<1> idx) + __attribute__((hc)) + { + int offset = amp_get_global_id(0); + // TODO-HCC - change to hc_get_local_size() + int stride = amp_get_local_size(0) * hc_get_num_groups(0) ; + + for (int i=offset; i