1 Reply Latest reply on Sep 13, 2012 10:07 AM by solver

    Building the linpack with APPML


      Hi! I'm trying to build HPL for GPU using APPML libraries. I've done it with ACML and it works fine on CPU. But when I'm trying to use APPML libraries by changing the blas library line in my Make.* file to the path to the clAmdBlas.so I'm getting


      HPL_idamax.c:(.text+0x1a): undefined reference to `idamax_'


      HPL_dgemv.c:(.text+0xbd): undefined reference to `dgemv_'

      HPL_dgemv.c:(.text+0x13c): undefined reference to `dgemv_'


      HPL_dcopy.c:(.text+0x21): undefined reference to `dcopy_'


      and so on


      It doesn't seem to be just a linking issue. Am I getting the whole concept of using it wrong? Any help would be appreciated.


      Info: Catalyst, AMD APP SDK and ACML are installed; cards HD 7970; OS openSuse12.1 x64.


      Thanks in advance.

        • Re: Building the linpack with APPML

          There are two issues:


          1. APIs of blas functions in APPML are different from standard BLAS. Please take a loot at clAmdBlas.h

              for more details.


          2. Arguments passed to BLAS functions in APPML resident on GPU's global memory. Data in HPL are

             located on CPU's memory. You need to transfer data to GPU's memory explicitly before calling blas functions

             in APPML.



          You may write wrapper functions on top of blas functions in APPMNL, whose API are exactly the same as

          the standard BLAS's. You need to transfer data between CPU and GPU in these wrapper functions.


          Hope it is helpful.