Next:
Introduction
Up:
User contribution to ATLAS
Previous:
User contribution to ATLAS
Contents
Introduction
Contributing your improvement to ATLAS
Directory terminology
Coding conventions for contributed code
A note about ATLAS kernels
Speeding up the Level 3 BLAS
Building the General Matrix Multiply From gemmK
The Main GEMM Kernel, gemmK
Putting it together with some examples
More timing info
Complex gemmK
What to do if you are writing in assembler
Providing ATLAS with kernel cleanup code
gemmK usage notes
Getting ATLAS to use your kernel
Contributing a complete GEMM implementation
Speeding up the Level 2 BLAS
Testing and timing mvn_k
Testing and timing mvt_k
Testing and timing ger_k
Testing and timing ger2_k
OLDSTUFF
Speeding Up GEMV, HEMV, SYMV, TRMV and TRSV
Speeding Up GER, GERU, GERC, HER, HER2, SYR and SYR2
Speeding up the Level 1 BLAS
General comments for Level 1 optimization
Testing a kernel
Timing a kernel
What to do if you are writing in assembler
Ramblings on special cases
Notes for ROTG, ROTMG, ROT, ROTM
Notes for ROT
Notes for ASUM
Notes for AXPBY
Notes for AXPY
Notes for COPY
Notes for CPSC
Notes for DOT
Notes for IAMAX
Notes for NRM2
Notes for SCAL
Notes for SET
Notes for SWAP
Getting your new kernel used
Using special compilers and flags for kernel compilation
Specifying all new compilers and flags
Specifying additional flags for the default compiler
Using a binary kernel
A quick reference to ATLAS programming resources
ATLAS's prefetch header file
Conclusion
Some notes on using assembly
Some notes on x86-32 assembler
Some notes on x86-64 assembler
Some notes on Sparc assembler
Some notes on PowerPC assembler
Some notes on HP PA-RISC assembler
Some notes on MIPS assembler
Clint Whaley 2012-07-10