#75 64-bit integers in ATLAS?

Would_be_nice
open
5
2011-12-03
2011-10-24
Wirawan Purwanto
No

Will ATLAS some day support 64-bit integers for matrix dimensions? Some large computational physics/chemistry software (such as GAMESS, nwchem) requires 64-bit integers to really work properly.

Wirawan

Discussion

    • assigned_to: nobody --> rwhaley
    • milestone: 148063 -->
    • labels: 360155 -->
     
  • I'm moving this to the feature request queue.

     
    • milestone: --> Would_be_nice
    • labels: --> Interface Improvements (example)
     
  • I believe that eventually I will add this support. I've been thinking about it myself for a while. The problem is that you have to duplicate that feature all the way down into the kernels that are in assembly, and thus can't be adapted by a simple #define like you can in C. It also means that the API is no longer compliant with the standard, but this could be done only at the installer's request, so it wouldn't be bad.

    So, I do plan to do this eventually, but I am unable to predict when I'll get to it. The more people who mention the need, and who give me examples, the more likely I am to prioritize it over the other items in the list, so hopefully other users will add their voices to yours here!

    Cheers,
    Clint

     
  • xiangyuliu
    xiangyuliu
    2012-04-03

    Hi dear all ,

    First I want to say current ATLAS is already a excellent open-source BLAS library for 32/64-bit platform, it's lapack performance can compete to Intel's MKL. Thank you for providing so great BLAS to us.
    And I believe that ATLAS will be more outstanding if it introduce 64-bit integers for array index beacause there are some special applications to welcome huge array with more than 2^31 elements.

    For example, I'm a Octave (http://www.octave.org) user. On 64-bit Linux systems, Octave is limited to (approximately) the following array sizes when using the default 32-bit indexing mode:

    double: 16GB
    single: 8GB
    uint64, int64: 16GB
    uint32, int32: 8GB
    uint16, int16: 4GB
    uint8, int8: 2GB

    To use arrays with more than 2^31 elements in a Linux server with more than 16GB memory, Octave has to be configured with the option --enable-64. If we use a netlib's refence BLAS and LAPACK , the FORTRAN FLAGS options -fdefault-integer-8 have to be added to the variable OPTS and NOOPT. But netlib's reference BLAS has only 'reference' performance ......

    From the view of my personal point, I look forward to seeing 64-bit index feature in furture.

    Happy to you!

    Thanks,
    Best Regards,
    Xiangyu LIU