У меня есть массив символов размером 100 МБ (h_array
), который выделяется с помощью cudaHostAlloc()
с флагом cudaHostAllocWriteCombined
.
. Программа сначала копирует данные в h_array
на хосте.Когда h_array
заполнен, он скопирует h_array
в d_array
на устройстве, и некоторая обработка будет выполнена.Когда обработка завершена, h_array
означает повторно в том смысле, что новые данные копируются в него снова, начиная с h_array[0]
.Новые данные предназначены для перезаписи того, что было ранее сохранено в h_array
.
Однако, я получаю ошибку сегментации, когда новые данные копируются в h_array
после завершения обработки.При использовании обычного malloc
.
ошибок при сегментировании нет. Что не так?Могу ли я не переписать память, когда она закреплена?
Спасибо!