В последнее время я много использую тягу. Я заметил, что для использования тяги необходимо всегда копировать данные из памяти процессора в память gpu.
Давайте посмотрим на следующий пример:есть лучший и быстрый способ скопировать из памяти процессора на GPU с помощью тяги?
int foo(int *foo)
{
host_vector<int> m(foo, foo+ 100000);
device_vector<int> s = m;
}
Я не совсем уверен, как работает host_vector
конструктор, но мне кажется, что я копирование исходных данных, исходя из *foo
, дважды - один раз в host_vector когда это он инициализируется, и в другое время, когда инициализируется device_vector
. Есть ли лучший способ копирования из процессора в gpu без создания промежуточных копий данных? Я знаю, что я могу использовать device_ptr
в качестве обертки, но это все еще не устраняет мою проблему.
спасибо!
аргумент size_t n указывает количество элементов в векторе и не должно быть в имени типа size_t, size_t обычно указывает длину данных в байтах. – TripleS