Otimizando a Multiplicação de Matrizes de Bytes com AVX-VNNI
2025-01-10
Este artigo explora a otimização da multiplicação de matrizes de bytes usando o conjunto de instruções AVX-VNNI. O autor começa com uma implementação ingênua, depois usa as bibliotecas gemmology e xsimd para criar versões otimizadas empregando transposição e um layout personalizado. Os resultados de benchmark mostram que o layout personalizado atinge o melhor desempenho, aproveitando a instrução vpdpbusd para ganhos significativos de eficiência. O artigo se aprofunda nos detalhes de implementação da função maddw da biblioteca gemmology e suas variações arquitetônicas.
Desenvolvimento
Multiplicação de Matrizes