首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据函数的CPE,如何计算下界?

根据函数的CPE,如何计算下界?
EN

Stack Overflow用户
提问于 2016-04-25 01:27:52
回答 1查看 1.3K关注 0票数 1

我遇到了一种计算数据类型浮动的CPE (由关键路径确定)的下界的方法。但是,我不知道这些数字是从哪里来的,在尝试计算类似的界限之前,我需要做一些澄清。

这就是我所想到的:(4+3)/3 = 2.33

我假设它被除以3,因为CPE值,但是我不知道(4+3)从哪里来。

对于整数和浮点数据,此函数的CPE为3.00。

代码语言:javascript
复制
void inner4(vec_ptr u, vec_ptr v, data t *dest) {
    long i; 
    long length = vec_length(u);
    data_t *udata = get_vec_start(u);
    data_t *udata = get_vec_start(v);
    data_t sum = (data_t) 0;
    for (i = 0; i < length; i++){
        sum = sum + udata[i] * vdata[i]'
    }
    *dest = sum;
}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-25 13:31:29

...I假设它被除以3,因为CPE值,但是我不知道(4+3)从哪里来。

您的(4+3)/3 = 2.33 (表示浮点数的下限CPE,或CPI)似乎是对比率的简化(可能是在分解之后),如注释中提供的https://en.wikipedia.org/wiki/Cycles_per_instruction示例中所示。即每种类型的指令数之和,每种类型的指令数乘以相应的时钟周期,全部除以总指令数。

链接中的示例2也适用于float类型,但与您在文章中引用的单元相比,使用不同的处理器指令组合和时钟周期计数提供了说明。虽然在你的帖子中没有足够的信息来确切地知道这些值是如何推导出来的,但链接中给出的公式清楚地显示了这些比率是如何构造的。

按照在示例2中给出的相同形式:并给定以下(人为的)指令组合和循环计数,尽管这是一个非常简化的示例(即只有两种指令类型),但这表明您的比率是如何得出的:

代码语言:javascript
复制
Instruction type    Instruction count   Clock cycle count  

Floating point      6000                2
Control transfer    3000                3

这样的比率将是:

代码语言:javascript
复制
(6000*2 + 3000*3)/9000  
After factoring:    

(4 + 3)/3 - Ratio is the sum of two instruction types, each multiplied
            by their corresponding cycle count, all divided by the total
            instructions in the specific program, then factored to
            lowest terms.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36830819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档