Description
-
I noticed that when building either a single or a multi-threaded build of OpenBLAS for android using the NDK, the build system detects the number of cores my desktop has, and uses that as the constant MAX_CPU_NUMBER. In my case 48!. which is clearly not the case. This happens in Makefile.prebuild by calling getarch.c, which tries to detect the number of cores on the machine that the library is being built upon.
-
The various cache sizes for the ARM64 platform are hard coded in cpuid_arm64.c. But a large section of these constants are not used for anything
L1_CODE_LINESIZE
L1_CODE_ASSOCIATIVE
L1_DATA_SIZE
L1_DATA_LINESIZE
L1_DATA_ASSOCIATIVE
L2_SIZE
L2_LINESIZE
L2_ASSOCIATIVE
(in fact this seems to be true for X86_64 also)
Are these constants just being declared for completeness so that one day the kernels can use this information as needed? Also are the values actually correct and constant across various ARM64 instantiations?