Hi,
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());
Initcheck gives:
========= 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?