PGI Guide to GotoBLAS2

This guide is intended to help build and test the GotoBLAS2 libraries using the PGI 2010 compilers.

Version Information

This guide was created for the current release of the GotoBLAS libararies packaged as GotoBLAS2. This information is for both x64 processors running 64-bit Linux and x86 processors running 32 bit Linux.

Application Notes

GotoBLAS2 is freely available, but an account is required to access the source code. To establish an account, visit and click on the GotoBLAS download link. You will be presented with a screen to sign up for an account. After you establish an account at TACC, you will be able to download the source code. Note: be sure to enable cookies on your browser for this site.

From the website:

"The GotoBLAS2 has been released by Texas Advanced Computing Center for commercial and academic use. The new product uses new algorithms and memory techniques for optimal performance of the BLAS routines. The changes target new architecture features in microprocessors and interprocessor communication techniques; also, NUMA controls enhance multi-threaded execution of BLAS routines on nodes. The new library features optimal performance on the following new platforms:

  • Intel Nehalem and Atom systems
  • VIA Nanoprocessor
  • SiCortex
  • AMD Shanghai and Istanbul

The new library includes the following features:

  • Configurations for hardware of new platforms
  • Incorporates features of new ISAs (Instruction Set Architecture)
  • A single binary can include multiple architecture components that are dynamically detected (for binary distributions)
  • NUMA controls are implemented to assure best process affinity and memory policy."

The original development stream—GotoBLAS—does not appear to be available for download from this website.

Obtaining the Source Code

GotoBLAS2-1.13.tar.gz source code can be downloaded from as describe above.



Building and Testing GotoBLAS2

  1. Untar the GotoBLAS2 package:

      tar -xvzf GotoBLAS2-1.13.tar.gz
       cd GotoBLAS2
  2. Set the environment, build and test the code:

    For PGI 2010 version 10.4 and above:

      make CC=pgcc FC=pgfortran >& make.log

    For PGI 2010 version 10.3 and below on systems running glibc 4.3:

       make CC="pgcc -I/usr/include" FC=pgfortran >& make.log

    For PGI 2010 version 10.3 and below on older Linux distributions:

       make CC=pgcc FC=pgfortran >& make.log


The completed libraries will be in the build directory and will need to be manually moved to the desired installation directory.

Known Issues and Limitations

GotoBLAS2 is built by default at the -O2 optimization level. Users may see slightly improved performance by editing the file "Makefile.rule" and changing COMMON_OPT to -fast:

   COMMON_OPT += -fast

The build process should be able to determine if your system is 32 bits or 64 bits. Should the build process get confused, you can add either BINARY=64 or BINARY=32 to the make command.

GotoBLAS2 can also support multiple architectures in one binary by uncommenting DYNAMIC_ARCH = 1 in the file "Makefile.rule".

Click me