Open Source Your Knowledge, Become a Contributor
Technology knowledge has to be shared and made accessible for free. Join the movement.
Usando memória local
Multiplicação de matrizes
Aqui temos implementações diferentes, onde cada invocação do kernel calcula uma linha inteira da matriz. Note que nosso NDRange
agora só tem uma dimensão e que no kernel (C_row.cl
) só solicitamos o get_global_id
para ela, já que a outra é percorrida por um for
na variável k
. Esta primeira versão apresenta desempenho pior do que a da lição anterior, ao menos na CPU. Experimente as outras duas versões desta lição alternando os comentários no programa principal. Note que na última versão (C_row_priv_block.cl
) você precisa declarar um NDRange
local e passa-lo como argumento no kernel, pois ele usa as funções get_local_id
e get_local_size
, além de alocar memória local.