В крайнем случае у тебя одно пространство виртуальных адресов и ты можешь аналог std::map (переписанный так, что все методы __host__ __device__) сконструировать на хосте и траверсить на девайсе
В крайнем случае у тебя одно пространство виртуальных адресов и ты можешь аналог std::map (переписанный так, что все методы __host__ __device__) сконструировать на хосте и траверсить на девайсе
И если поддержаны атомики, то можешь lock-free такую структуру юзать одновременно с хоста и девайса
У тебя какой-то диапазон адресов виртуальных на хосте и, быть может совпадающий, диапазон адресов на девайсе синхронизируются. Потрогал страницу - изменения становятся видны везде. Не обязательно автоматически, но есть вариант, что даже атомики в этой памяти будут работать между хостом и девайсом или даже несколькими девайсами.
это как раз про то, что память отмечена как быстрая для видюхи?
pageableMemoryAccessUsesHostPageTables - вызываешь malloc/new и передаёшь указатель полученный в код, исполняемый на девайсе и там по нему доступаешься без всяких дополнительных действий с твоей стороны
pageableMemoryAccessUsesHostPageTables - вызываешь malloc/new и передаёшь указатель полученный в код, исполняемый на девайсе и там по нему доступаешься без всяких дополнительных действий с твоей стороны
то есть тут видюха постоянно что-то тащит из оперативки