Initcheck complains about a find_if call I have in my to work on a cumsum of a histogram:
Is there an issue with the way I’m casting the raw pointer and using iterators?
LEVELS is a const int 2 << 14.
thrust::device_ptr<int> d_hist(d_hist_output); thrust::device_vector<int> d_cumsum(LEVELS); thrust::inclusive_scan(d_hist, d_hist + LEVELS, d_cumsum.begin()); thrust::device_vector<int>::iterator i_find_min = thrust::find_if(d_cumsum.begin(), d_cumsum.begin() + LEVELS , greater_than_lower_threshold());
========= Host API memory access error at host access to 0xf013d0000 of size 16 bytes ========= Uninitialized access at 0xf013d0000 on access by cudaMemcopy source. ========= Saved host backtrace up to driver entry point at error ========= Host Frame:/usr/lib/aarch64-linux-gnu/tegra/libcuda.so.1 (cuMemcpyDtoHAsync_v2 + 0x174) [0x219254] ========= Host Frame:./APP [0x653b0] =========
I’ve ascertained that the find_if call is the offending call but could there be another reason for the MemcpyDtoHAsync error?