使用PAPI的一些问题
你曾经使用过PAPI吗?
因为PAPI支持内核版本> 2.6.32(perf-events),所以我选择它来测试我的代码。
为什么我只得到相同的数字(结果),无论我选择什么事件代码,如PAPI_TOT_INS,PAPI_BR_INS等。
#include <stdio.h>
#include "papi.h"
int main(){
int i,j,k;
int a[300][300];
int b[300][300];
int c[300][300];
for(i=0;i<300;i++){
for(j=0;j<300;j++){
a[i][j]=1;
b[i][j]=2;
c[i][j]=0;
}
}
int Events[1]={PAPI_TOT_INS};//={PAPI_BR_INS,PAPI_BR_MSP};
long_long values[1];//values[0]=0;
PAPI_start_counters(Events,1);
for(i=0;i<300;i++){
for(j=0;j<300;j++){
for(k=0;k<300;k++){
c[i][j]+=a[i][k]*b[k][j];
}
}
}
printf("r is %dn",c[0][0]);
PAPI_read_counters(values,1);
printf("events is %lldn",values[0]);
for(i=0;i<300;i++){
for(j=0;j<300;j++){
for(k=0;k<300;k++){
a[i][j]+=b[i][k]*c[k][j];
}
}
}
PAPI_accum_counters(values,1);
printf("events is %lldn",values[0]);
for(i=0;i<300;i++){
for(j=0;j<300;j++){
for(k=0;k<300;k++){
a[i][j]+=b[i][k]*c[k][j];
}
}
}
PAPI_stop_counters(values,1);
printf("events is %lldn",values[0]);
return 0;
}
我的想法:
1.我的电脑(uname -a):
Linux xunzhang-virtual-machine 2.6.35-28-generic#49-Ubuntu SMP Tue Mar ... X86_64 GNU / Linux
我怎么能(命令)看到我的内核对perf事件的支持?我只是使用> 2.6.32的默认结论....
2.我只是在我的MAC中使用我的虚拟机,这样做了吗??
说些什么来指导/帮助我。谢谢!!
没有找到相关结果
已邀请:
2 个回复
碧肮械淌设
辟官陡板休