I am using ilaenv function from Arm PL. I am calling ilaenv_ with the arguments ilaenv_(1, "ZHETRD", "U", n, -1, -1, -1), as I want to get the optimal block-size for my implementation of a symmetrix complex eigenproblem solution. (I am calling ZHETRD since there is no function to solve a symmetric eigenproblem directly). My program was first implemented in Intel Architecture, hence I was using MKL functions. Now I want to migrate to ARM, so I replaced MKL functions with ArmPL functions. The above call to ilaenv returns 32, which is different to both MKL implementation and LAPACK Fortran implementation, which both return 1. (when called with the above arguments). Where could I find proper documentation about ilaenv? Would you kindly have a look at ilaenv function, since there might be a bug in it? I am happy to provide further assistance or guidance.
Looking forward to hearing from you.
Anthimos Kalosidis,
Software Engineer
Hi there,
Thank you for getting in touch.
In ArmPL, ILAENV returns the optimal blocksizes for ArmPL's implementations of LAPACK functions. If you have implemented your own function to solve symmetric complex eigenproblems you will need to do your own tuning to determine its optimal blocksize; the value returned by ILAENV in your question only applies to the version of ZHETRD implemented by ArmPL. Similarly, when calling MKL's ILAENV the value returned applies only to MKL's implementation of ZHETRD, which is why it is different from the value returned in ArmPL.
You can find ArmPL's documentation for ILAENV at https://developer.arm.com/documentation/101004/2507/LAPACK-Linear-Algebra-Package/LAPACK-utilities-routines/ilaenv?lang=en
Regards,
Nick