是因为Cuda是一种并行计算平台和编程模型,用于利用GPU进行高性能计算。在Cuda中,GPU和CPU是分离的,各自有自己的内存空间。当我们将数据从主机(CPU)内存复制到设备(GPU)内存时,实际上是在两个不同的内存空间中创建了两个独立的数组。
当我们在设备上对数组进行写操作时,只会更改设备内存中的数组值,而不会影响主机内存中的数组值。这是因为设备和主机内存是相互独立的,它们之间的数据不会自动同步。
如果我们希望在设备上的数组写入Cuda后能够更改主机上的数组值,我们需要进行显式的数据传输操作。可以使用Cuda提供的函数来实现主机和设备之间的数据传输,例如cudaMemcpy函数可以实现主机到设备和设备到主机的数据传输。
总结起来,向设备上的数组写入Cuda不会更改值是因为设备和主机内存是相互独立的,它们之间的数据不会自动同步。如果需要在设备和主机之间传输数据,需要使用Cuda提供的函数进行显式的数据传输操作。
领取专属 10元无门槛券
手把手带您无忧上云