
Eu tenho um kernel cuda simples (adicionando dois vetores de tamanho N) bem parecido compara este blog cuda aqui. Mudei apenas algumas coisas, por exemplo, executar a medição em várias amostras. Então, deixe isso rodar, digamos, 1000 vezes e depois escreva essa medida em um txt. Se eu traçar agora as medidas para transferir um vetor para o dispositivo, obtenho o seguinte:
Agora, se dermos uma olhada no stddev desenhado como barras de erro verticais, então deve ficar claro que, por algum motivo, a flutuação dos movimentos de dados aumenta com o tamanho, porque as barras de erro são meio constantes em um gráfico log-log. Isso pode ser validado quando apenas o stddev é plotado
Se eu pegar o mesmo programa doblog cuda, então recebo, a cada 10 execuções, também flutuações de largura de banda. De onde isto vem? Observei o mesmo comportamento em duas GPUs diferentes, uma V100 e uma RTX2080. Desculpe pelo transtorno com as imagens, mas não tenho pontos de reputação suficientes.
Responder1
como umusuário do fórum de desenvolvimento da nvidia sugeridoTentei memória fixada em vez de não fixada e funcionou muito bem. As flutuações desapareceram quase completamente.