как использовать cooperative_group для синхронизации сетки в cuda?

Я хочу синхронизировать все потоки в сетке с помощью cooperative_groups::this_grid(). Sync(), но кажется, что код этого предложения не может быть выполнен.

Например, я написал кусок простого кода. Второй printf не может быть выполнен. Я хочу знать, в чем проблема?

__global__
void kernel(){
    printf("here\n");
    cooperative_groups::this_grid().sync();
    printf("here11111\n");
}
int main() {
    kernel<<<64, 64>>>();
    checkCudaErrors(cudaGetLastError());
    cudaDeviceSynchronize();
    while(1){
        sleep(1);
    };
    return 0;
}

0 ответов

Другие вопросы по тегам