GetCacheInfo
- 获取L2 Cache大小:
HmppResult HMPP_GetL2CacheSize (int32_t *size);
- 获取L2 Cache和L3 Cache中的较大值:
HmppResult HMPP_GetMaxCacheSizeB (int32_t *size);
- 获取各级缓存的参数,如类型、等级、大小等信息:
HmppResult HMPP_GetCacheParams (HmppCache **cacheInfo);
参数
参数名 |
描述 |
取值范围 |
输入/输出 |
---|---|---|---|
size |
目标地址,指向地址存放缓存的大小。 |
非空 |
输出 |
cacheInfo |
目标地址,指向地址存放指向HmppCache数组的指针值。 |
非空 |
输出 |
返回值
- 成功:返回HMPP_STS_NO_ERR。
- 失败:返回错误码。
错误码
错误码 |
描述 |
---|---|
HMPP_STS_NULL_PTR_ERR |
size、cacheInfo这些指针入参中存在空指针。 |
HMPP_STS_NOT_SUPPORT |
获取缓存信息失败。 |
示例
void GetCacheInfo_Example()
{
int32_t l2CacheSize = 0;
HmppResult result = HMPP_GetL2CacheSize(&l2CacheSize);
printf("%s\n", HMPP_GetStatusString(result));
printf("l2CacheSize = %d Byte\n\n", l2CacheSize);
int32_t maxCacheSize = 0;
result = HMPP_GetMaxCacheSizeB(&maxCacheSize);
printf("%s\n", HMPP_GetStatusString(result));
printf("maxCacheSize = %d Byte\n\n", maxCacheSize);
HmppCache *pCacheSize;
result = HMPP_GetCacheParams(&pCacheSize);
printf("%s\n", HMPP_GetStatusString(result));
int32_t i = 0;
while (pCacheSize[i].type) {
printf("type = %d\n", pCacheSize[i].type);
printf("type = %d\n", pCacheSize[i].level);
printf("type = %d Byte\n\n", pCacheSize[i].size);
++i;
}
}
运行结果:
No Error l2CacheSize = 524288 Byte No Error maxCacheSize = 33554432 Byte No Error type = 1 type = 1 type = 65536 Byte type = 2 type = 1 type = 65536 Byte type = 3 type = 2 type = 524288 Byte type = 3 type = 3 type = 33554432 Byte
实际输出可能与上述结果不同,可调用lscpu对比输出值。
父主题: 基础函数