Можно ли использовать функцию CCP memcpy для копирования данных между системной памятью и памятью GPU? - PullRequest
0 голосов
/ 31 января 2019

Я знаю, что это можно сделать с помощью cudaMemcpy, но я хотел бы знать, может ли это сделать и memcpy.

Ответы [ 2 ]

0 голосов
/ 31 января 2019

В CUDA, если память выделяется с помощью API, сопоставленного с хостом, такого как cudaHostAlloc, или с помощью API Unified Memory, такого как cudaMallocManaged, тогда указатель, возвращаемый такими функциями, может использоваться непосредственно в C-стандартная библиотека memcpy операция.Скопированные таким образом данные будут видны для кода устройства с использованием того же указателя.

Указатель, возвращенный, например, cudaMalloc, не может успешно участвовать в операции memcpy.

0 голосов
/ 31 января 2019

Предполагая, что современные операционные системы и не встроенное оборудование, memcpy просто копирует область памяти в другую, которая должна находиться в виртуальном адресном пространстве вашего процесса и не знает о графических процессорах или любом другом оборудовании.

Таким образом, единственный способ memcpy может работать для этой цели, если ваши драйверы графического процессора отображают некоторые страницы вашего адресного пространства, так что записи на эти страницы в конечном итоге попадают в память графического процессора.

...