Questões de Tecnologia da Informação · ITA

Tecnologia da InformaçãoHierarquia de memória e memória cacheITA 2025

ITA

Questão de Tecnologia da Informação

11

Na programação paralela com aceleradores, como em CUDA, é preciso considerar os espaços de endereçamento acessíveis pelo código executando em CPU e pelo código executado em GPU. // código 1: int N = 1<<20; float *x, *y, *d_x, *d_y; x = (float*)malloc(N*sizeof(float)); y = (float*)malloc(N*sizeof(float)); cudaMalloc(&d_x, N*sizeof(float)); cudaMalloc(&d_y, N*sizeof(float)); // inicia elementos dos vetores x e y cudaMemcpy(d_x, x, N*sizeof(float), cudaMemcpyHostToDevice); cudaMemcpy(d_y, y, N*sizeof(float), cudaMemcpyHostToDevice); // invoca kernel para manipulação de x e y kern <<< ..., ... >>> (N, d_x, d_y); cudaMemcpy(y, d_y, N*sizeof(float), cudaMemcpyDeviceToHost); // código 2: int N = 1<<20; float *x, *y; cudaMallocManaged(&x, N*sizeof(float)); cudaMallocManaged(&y, N*sizeof(float)); // inicia elementos dos vetores x e y … // invoca kernel para manipulação de x e y kern <<< ..., ... >>> (N, x, y); cudaDeviceSynchronize(); Observe os 2 trechos de código apresentados anteriormente e indique a alternativa INCORRETA (próxima página): 12

Sua resposta

Mais questões de Hierarquia de memória e memória cache

Questão de prova oficial, com o gabarito definitivo publicado pela banca. Reproduzida para fins de estudo.