Будет ли cudaMalloc синхронизировать хост и устройство?
Я понимаю, что cudaMemcpy будет синхронизировать хост и устройство, но как насчет cudaMalloc или cudaFree?
По сути, я хочу асинхронизировать распределение / копирование памяти и выполнение ядра на нескольких устройствах с графическим процессором, и упрощенная версия моего кода выглядит примерно так:
void wrapper_kernel(const int &ngpu, const float * const &data)
{
cudaSetDevice(ngpu);
cudaMalloc(...);
cudaMemcpyAsync(...);
kernels(...);
cudaMemcpyAsync(...);
some host codes;
}
int main()
{
const int NGPU=3;
static float *data[NGPU];
for (int i=0; i