En aktuell trend inom högpresterande datorer är att bryta ner ett stort linjärt algebraproblem i partier som innehåller tusentals mindre problem, som kan lösas självständigt, innan resultaten sammanställs. För att standardisera gränssnittet till dessa rutiner utvecklar gemenskapen en förlängning till BLAS-standarden (den batchade BLAS), vilket gör det möjligt för användare att utföra tusentals små BLAS-operationer parallellt samtidigt som de använder sin hårdvara på ett effektivt sätt. Vi diskuterar fördelarna och nackdelarna med de aktuella batchade BLAS-förslagen och utför ett antal experiment, med fokus på GEMM, för att undersöka deras inverkan på prestandan. I synnerhet analyserar vi effekten av nya datalayouter som exempelvis lämnar matriserna i minnet för att underlätta vektorisering och förhämtning av data. Använda dessa ändringar vår kod överträffar både MKL och CuBLAS med upp till 6 gånger på självvärd Intel KNL (kodnamn Knights Landing) och Kepler GPU arkitekturer, för ett stort antal DGEMM operationer med hjälp av matriser av storlek 2 × 2 till 20 × 20.
Ny studie föreslog en ny datalayout för att öka BBLAS prestanda på CUDA GPUs genom att interleating matriser i minne för bättre data vektorisering och prefetching REF.
The Design and Performance of Batched BLAS on Modern High-Performance Computing Systems
{'venue': 'ICCS', 'journal': None, 'mag_field_of_study': ['Computer Science']}