据我所知,当主机和设备之间的复制操作使用cudaMemcpy启动时,主机指针会自动固定。那么有一个单独的API cudAHostAlloc()用于分配固定主机内存的含义和必要性是什么?
答案 0 :(得分:3)
这两个操作不一样,传递给cudaMemcpy
的主机指针不是“自动固定”。
对于从可分页存储器到设备的传输,host memory is copied to a staging buffer。然后,临时缓冲区是任何传输的目标。
这使得可分页内存的传输速度比固定内存缓冲区的传输速度慢(通常)。使用固定内存也allows for other possibilities,例如具有可由设备直接访问的映射内存,而无需显式(API级别)传输。