diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2019-03-03 21:09:10 +0100 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2019-03-03 21:10:13 +0100 |
commit | f0238cfb6997c4acfc2bd200de7295f3fa36968f (patch) | |
tree | b215183760e4f615b9c1dabc1f116383b72a1b55 /eigen/bench/check_cache_queries.cpp | |
parent | 543edd372a5193d04b3de9f23c176ab439e51b31 (diff) |
don't index Eigen
Diffstat (limited to 'eigen/bench/check_cache_queries.cpp')
-rw-r--r-- | eigen/bench/check_cache_queries.cpp | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/eigen/bench/check_cache_queries.cpp b/eigen/bench/check_cache_queries.cpp deleted file mode 100644 index 029d44c..0000000 --- a/eigen/bench/check_cache_queries.cpp +++ /dev/null @@ -1,101 +0,0 @@ - -#define EIGEN_INTERNAL_DEBUG_CACHE_QUERY -#include <iostream> -#include "../Eigen/Core" - -using namespace Eigen; -using namespace std; - -#define DUMP_CPUID(CODE) {\ - int abcd[4]; \ - abcd[0] = abcd[1] = abcd[2] = abcd[3] = 0;\ - EIGEN_CPUID(abcd, CODE, 0); \ - std::cout << "The code " << CODE << " gives " \ - << (int*)(abcd[0]) << " " << (int*)(abcd[1]) << " " \ - << (int*)(abcd[2]) << " " << (int*)(abcd[3]) << " " << std::endl; \ - } - -int main() -{ - cout << "Eigen's L1 = " << internal::queryL1CacheSize() << endl; - cout << "Eigen's L2/L3 = " << internal::queryTopLevelCacheSize() << endl; - int l1, l2, l3; - internal::queryCacheSizes(l1, l2, l3); - cout << "Eigen's L1, L2, L3 = " << l1 << " " << l2 << " " << l3 << endl; - - #ifdef EIGEN_CPUID - - int abcd[4]; - int string[8]; - char* string_char = (char*)(string); - - // vendor ID - EIGEN_CPUID(abcd,0x0,0); - string[0] = abcd[1]; - string[1] = abcd[3]; - string[2] = abcd[2]; - string[3] = 0; - cout << endl; - cout << "vendor id = " << string_char << endl; - cout << endl; - int max_funcs = abcd[0]; - - internal::queryCacheSizes_intel_codes(l1, l2, l3); - cout << "Eigen's intel codes L1, L2, L3 = " << l1 << " " << l2 << " " << l3 << endl; - if(max_funcs>=4) - { - internal::queryCacheSizes_intel_direct(l1, l2, l3); - cout << "Eigen's intel direct L1, L2, L3 = " << l1 << " " << l2 << " " << l3 << endl; - } - internal::queryCacheSizes_amd(l1, l2, l3); - cout << "Eigen's amd L1, L2, L3 = " << l1 << " " << l2 << " " << l3 << endl; - cout << endl; - - // dump Intel direct method - if(max_funcs>=4) - { - l1 = l2 = l3 = 0; - int cache_id = 0; - int cache_type = 0; - do { - abcd[0] = abcd[1] = abcd[2] = abcd[3] = 0; - EIGEN_CPUID(abcd,0x4,cache_id); - cache_type = (abcd[0] & 0x0F) >> 0; - int cache_level = (abcd[0] & 0xE0) >> 5; // A[7:5] - int ways = (abcd[1] & 0xFFC00000) >> 22; // B[31:22] - int partitions = (abcd[1] & 0x003FF000) >> 12; // B[21:12] - int line_size = (abcd[1] & 0x00000FFF) >> 0; // B[11:0] - int sets = (abcd[2]); // C[31:0] - int cache_size = (ways+1) * (partitions+1) * (line_size+1) * (sets+1); - - cout << "cache[" << cache_id << "].type = " << cache_type << "\n"; - cout << "cache[" << cache_id << "].level = " << cache_level << "\n"; - cout << "cache[" << cache_id << "].ways = " << ways << "\n"; - cout << "cache[" << cache_id << "].partitions = " << partitions << "\n"; - cout << "cache[" << cache_id << "].line_size = " << line_size << "\n"; - cout << "cache[" << cache_id << "].sets = " << sets << "\n"; - cout << "cache[" << cache_id << "].size = " << cache_size << "\n"; - - cache_id++; - } while(cache_type>0 && cache_id<16); - } - - // dump everything - std::cout << endl <<"Raw dump:" << endl; - for(int i=0; i<max_funcs; ++i) - DUMP_CPUID(i); - - DUMP_CPUID(0x80000000); - DUMP_CPUID(0x80000001); - DUMP_CPUID(0x80000002); - DUMP_CPUID(0x80000003); - DUMP_CPUID(0x80000004); - DUMP_CPUID(0x80000005); - DUMP_CPUID(0x80000006); - DUMP_CPUID(0x80000007); - DUMP_CPUID(0x80000008); - #else - cout << "EIGEN_CPUID is not defined" << endl; - #endif - return 0; -} |