için malloc() ve cudaHostAlloc() ile ayrılan verilerin CPU bellek erişim gecikmesi, malloc() ile ayrılan verilerin erişim gecikmesi ile karşılaştırılması ve cudaHostAlloc() ile ayrılan verilerle karşılaştırmalı olarak basit bir test gerçekleştiriyorum ana bilgisayar (işlemci cihaza erişiyor). CudaHostAlloc() ile ayrılan verilere erişmenin, Jetson Tk1'deki malloc() ile ayrılan verilere erişmekten çok daha yavaş olduğunu fark ettim.Tegra TK1
Bu, ayrık GPU'lar için geçerli değildir ve sadece TK1 için geçerli gibi görünmektedir. Bazı araştırmalardan sonra, cudaHostAlloc() ile ayrılan verilerin işlem adres alanının/dev/nvmap alanlarına bellek eşlemeli (mmap) olduğunu buldum. Bu işlem yığını üzerinde eşlenen normal malloc verileri için geçerli değildir. Bu eşlemenin, GPU'nun verilere erişmesine izin vermek için gerekli olabileceğini anlıyorum çünkü cudaHostAlloc'd verileri hem ana bilgisayardan hem de cihazdan görülebilir olmalıdır.
Soruma sorum var: Ana bilgisayardan gelen cudaHostAlloc'd veri erişiminin nereden geldiğini nereden görebilirsiniz? Veri, CPU önbelleklerinde önbelleğe alınmış/dev/nvmap ile eşlenmiş mi?