中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

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对比输出值。