|
@ -313,12 +313,14 @@ public: |
|
|
// calculate pointers |
|
|
// calculate pointers |
|
|
size_t chunk_id = gid + gcnt * i; |
|
|
size_t chunk_id = gid + gcnt * i; |
|
|
base_t* chunk_ptr = get_sub_chunk_ptr(data_b, chunk_id, chunk_size_w, tid, tcnt); |
|
|
base_t* chunk_ptr = get_sub_chunk_ptr(data_b, chunk_id, chunk_size_w, tid, tcnt); |
|
|
|
|
|
|
|
|
|
|
|
std::unique_ptr<dsacache::CacheData> data; |
|
|
base_t* data_ptr; |
|
|
base_t* data_ptr; |
|
|
|
|
|
|
|
|
if constexpr (caching) { |
|
|
if constexpr (caching) { |
|
|
// access the cache for the given chunk which will have been accessed in scan_b |
|
|
// access the cache for the given chunk which will have been accessed in scan_b |
|
|
|
|
|
|
|
|
const auto data = cache_.Access(reinterpret_cast<uint8_t *>(chunk_ptr), chunk_size_b / tcnt); |
|
|
|
|
|
|
|
|
data = cache_.Access(reinterpret_cast<uint8_t *>(chunk_ptr), chunk_size_b / tcnt); |
|
|
|
|
|
|
|
|
// wait on the caching task to complete, this will give time for other processes |
|
|
// wait on the caching task to complete, this will give time for other processes |
|
|
// to make progress here which will therefore not hurt performance |
|
|
// to make progress here which will therefore not hurt performance |
|
|