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对比输出值。
父主题: 基础函数