【PAPI】Linux下安裝PAPI讀取硬體效能計數器資料

來源:互聯網
上載者:User

零、PAPI簡介

    PAPI (Performance Application Programming Interface),它是一套API,通過它可以訪問CPU效能計數器,效能效能計數器的資料,

例如 L1/L2 Cache,CPU Cycle,CPU Instruction,TLB等.

    PAPI官網是: http://icl.cs.utk.edu/papi/

 

一、安裝前提

    確保核心中安裝了 perfctr 模組並且是動態載入方式(modprobe perfctr),並且支援APIC;
    
    確保 perfctr 使用正常,所有測試執行個體能夠正常運行,例如 perfex -i;
    
   “perfctr 模組安裝”請查看“Linux核心編譯以及perfctr模組安裝” 

                                          http://blog.csdn.net/zklth/archive/2010/08/21/5828629.aspx

二、安裝步驟
  
    摘自papi目錄下的INSTALL.txt檔案, 以下是 papi-3.6.0 的安裝步驟,其它版本的安裝步驟也是如此。
   
General Installation

1. % ./configure
    % make

2. Check for errors.

 a) Run a simple test case: (This will run ctests/zero)

 % make test  測試,將會出現PASSED, FAILED, or SKIPPED三種結果,正常情況下應該是PASSED

 If you get good counts, you can optionally run all the test programs
 with the included test harness. This will run the tests in quiet mode,
 which will print PASSED, FAILED, or SKIPPED. Tests are SKIPPED if the
 functionality being tested is not supported by that platform.

 % make fulltest (This will run ./run_tests.sh)  所有的測試

 To run the tests in verbose mode:

 % ./run_tests.sh -v

3. Create a PAPI binary distribution or install PAPI directly.

 a) To install PAPI libraries and header files from the build tree:

 % make install  將會安裝相關檔案到/usr/local下,bin,include,lib

papi預設是安裝在 /usr/local 下的,
papi可執行命令安裝在bin下,似乎papi-3.6.0下沒有papi_version命令,3.7.0有
papi的標頭檔放在include下,包括papiStdEventDefs.h、papi.h
papi的庫檔案放在lib下,包括靜態庫libpapi.a,動態庫libpapi.so.3.6.0
[root@hdfs05 lib]# ll *papi*
-rw-r--r-- 1 root root 1842928 08-25 18:02 libpapi.a
lrwxrwxrwx 1 root root      16 08-25 18:02 libpapi.so -> libpapi.so.3.6.0
lrwxrwxrwx 1 root root      16 08-25 18:02 libpapi.so.3 -> libpapi.so.3.6.0
-rwxrwxr-x 1 zkl  zkl   631936 08-25 18:02 libpapi.so.3.6.0
還有share、man目錄下也安裝了一些東西
          

 b) To install PAPI manual pages from the build tree:

 % make install-man

 c) To install PAPI test programs from the build tree:

 % make install-tests

 d) To install all of the above in one step from the build tree:

 % make install-all

 

4. 由於papi的相關庫安裝在 /usr/local/lib 下,而我們編譯器連結動態或者靜態庫時,預設不會再 /usr/local/lib 下尋找相關庫的,所以為了在編譯器時可以自動連結/usr/local/lib下的papi相關庫(例如: gcc ** -lpapi),我們做如下操作:

將 /usr/local/lib  加入檔案 /etc/ld.so.conf 的最後一行,然後執行 ldconfig 命令

 

5. 編寫一個 C 程式,調用 papi 相關函數,使用命令 gcc *.c -lpapi 命令編譯,查看是否能夠正常使用 PAPI .

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.