Otimização de Desempenho de Multiplicação de Matrizes BQN: Bloqueio de Cache e Divisão e Conquista
Este artigo explora a otimização do desempenho da multiplicação de matrizes grandes usando a linguagem BQN. O autor primeiro usa um método simples de particionamento quadrado para usar o cache de forma eficaz, obtendo uma aceleração de cerca de seis vezes. Em seguida, um algoritmo de Strassen baseado em uma estratégia de divisão e conquista é introduzido e demonstrado experimentalmente para alcançar uma aceleração de até 9x em matrizes grandes. O artigo também compara o impacto no desempenho de diferentes tamanhos de bloco e estratégias de ladrilho aninhado, concluindo que o limite de desempenho de uma implementação BQN pura e de thread único foi essencialmente atingido.
Leia mais