Desenvolvimento de otimização de Torch C++ e CUDA o dia todo hoje e amanhã, com transmissões ao vivo aqui/no YouTube/na Twitch. O objetivo é... 1) Faça o PufferLib executar RL a 10 milhões de passos por segundo. 2) Eliminar fontes de gargalos potenciais difíceis de identificar 3) Veja como podemos simplificar isso Abaixo, algumas perguntas para desenvolvedores de GPUs.
P: Tenho redes pequenas e preciso reduzir o número de inicializações de kernel. Minhas opções são: 1) sofrer com o inferno do cudagraph; 2) escrever kernels fundidos grandes; ou 3) ambos. Kernels fundidos parecem interessantes, mas o cubulares matmul da NVIDIA não é de código aberto. O que fazer?
P: Até agora, os kernings para FP32 são bem fáceis. Basicamente, é só escrever código em C. Qual é a maneira mais fácil de implementar suporte para TF32, FP16 e BF16 sem fazer uma bagunça completa?
P: Meu instinto é evitar bibliotecas extras, a menos que sejam absolutamente necessárias. Realmente não gosto do Triton pelo que vejo, por exemplo (embora eu me incomodasse menos se ele gerasse os kernels uma única vez, que eu pudesse incluir estaticamente no meu projeto). Preciso ajustar o tamanho dos tiles. O que devo fazer?