1. Hotpots analysis
1.1 Hot functions

1.2 Hot loops
格式说明:
执行百分比:热点循环占本函数执行比例(热点循环占程序执行比例)
Explanation of Format:
Execution time percentage:Percentage of Execution time in current function(Percentage of Execution time in current program)

Total: 78%

Function 1: mgau_eval
me.L1.1.1
Execution time percentage:20.6%(7.7%)
me.L2.1
Execution time percentage:21.9%(8.2%)
me.L2.1.1
Execution time percentage:55.1%(20.7%)

Function 2: vector_gautbl_eval_logs3
vgel.L1
Execution time percentage:12.5%(3.9%)
vgel.L1.1
Execution time percentage:87.5%(27.5%)

Function 3: subvq_mgau_shortlist
sms.L1
Execution time percentage:53.7%(4.8%)
sms.L2
Execution time percentage:9.5%(0.8%)

Function 4: logs3_add
la.L1
Execution time percentage:90.4%(4.1%) (无for循环)

Function 5: approx_cont_mgau_frame_eval
acmfe.L1
Execution time percentage:71.7%(2.2%)
acmfe.L2
Execution time percentage:28.3%(0.9%)

Function 6: lextree_hmm_eval
lhe.L1
Execution time percentage:99%(2.6%) (含有函数调用)

Function 7: mdef_sseq2sen_active
msa.L1
Execution time percentage:100%(2.6%) (含有函数调用)

Function 8: approx_mgau_eval
ame.L1
Execution time percentage:90%(1.9%) (无for循环,含有函数调用)

Function 9: dict2pid_comsenscr
dc.L1.1
Execution time percentage:90%(1.6%) (含有函数调用)

Function 10: hmm_vit_eval_3st
hve.L1
Execution time percentage: (无for循环)

Function 11: lextree_enter
le.L1
Execution time percentage:90%(0.7%)

Function 12: fe_fft
ff.L1
Execution time percentage:23%(0.08%)
ff.L1.1.1
Execution time percentage:64%(0.37%)

Function 13: lextree_hmm_propagate
lhp.L1
Execution time percentage:31.7%(含有函数调用)
lhp.L2
Execution time percentage:51%(含有函数调用)

Function 14: dict2pid_comsseq2sen_active
dca.L1
Execution time percentage:100%(含有函数调用)

Function 15: lextree_ssid_active
lsa.L1
Execution time percentage:99%(0.19%)

Function 16: logs3_init
li.L1
Execution time percentage:100%(含有函数调用)

Function 17: utt_decode_block
udb.L1
Execution time percentage:40%(含有函数调用)

1.3 Hot code phase

/*   Function 1: mgau_eval  */
// me.L1.1.1
if (! active)
{for (c = 0; c < mgau->n_comp-1; c += 2) {// me.L1.1for (i = 0; i < veclen; i++) {diff1 = x[i] - m1[i];dval1 -= diff1 * diff1 * v1[i];diff2 = x[i] - m2[i];dval2 -= diff2 * diff2 * v2[i];}}
}
// me.L2.1
if (! active)
else
{for (j = 0; active[j] >= 0; j++) {c = active[j];m1 = mgau->mean[c];v1 = mgau->var[c];dval1 = mgau->lrd[c];if (dval1 < g->distfloor)dval1 = g->distfloor;score = logs3_add (score, (int32)(f * dval1) + mgau->mixw[c]); }
}
// me.L2.1.1
if (! active)
else
{for (j = 0; active[j] >= 0; j++) {for (i = 0; i < veclen; i++) {diff1 = x[i] - m1[i];dval1 -= diff1 * diff1 * v1[i];}}
}/*  Function 2: vector_gautbl_eval_logs3   */
// vgel.L1
for (r = offset; r < end-1; r += 2)
{m1 = gautbl->mean[r];m2 = gautbl->mean[r+1];v1 = gautbl->var[r];v2 = gautbl->var[r+1];dval1 = gautbl->lrd[r];dval2 = gautbl->lrd[r+1];//  vgel.L1.1for (i = 0; i < veclen; i++) {diff1 = x[i] - m1[i];dval1 -= diff1 * diff1 * v1[i];diff2 = x[i] - m2[i];dval2 -= diff2 * diff2 * v2[i];}if (dval1 < gautbl->distfloor)dval1 = gautbl->distfloor;if (dval2 < gautbl->distfloor)dval2 = gautbl->distfloor;score[r] = (int32)(f * dval1);score[r+1] = (int32)(f * dval2);
}/*  Function 3: subvq_mgau_shortlist   */
// sms.L1
switch (vq->n_sv) {case 3:
for (i = 0; i < n; i++)
{if (VQ_EVAL == 1) {v = (int32) vqdist[*map];map += 3;} else {if (VQ_EVAL == 2) {v = vqdist[*(map++)];v += 2 * vqdist[*map]; map += 2;} else {v = vqdist[*(map++)];v += vqdist[*(map++)]; v += vqdist[*(map++)]; }}gauscore[i] = v;if (bv < v)bv = v;
}
break;// sms.L2
for (i = 0; i < n; i++)
{if (gauscore[i] >= th)sl[nc++] = i;
}/*   Function 4: logs3_add  */
// la.L1
if (d < add_tbl_size)
{if (USE_LOG3_ADD_TABLE) r += add_tbl[d];elser += 0.5 + (float64) (log(1.0 + pow(F,d)) * invlogB);
}/*  Function 5: approx_cont_mgau_frame_eval   */
// acmfe.L1
for (s = 0; s < g->n_mgau; s++)
{is_compute = !sen_active || sen_active[s];is_ciphone  =  (s==cd2cisen[s]);if(!is_skip){ if(is_ciphone){senscr[s]=cache_ci_senscr[s];if (pbest < senscr[s]) pbest = senscr[s];if (best < senscr[s]) best = senscr[s];sen_active[s]=1;ng+=mgau_n_comp(g,s); ns++;}else{if(is_compute) {if((pbest-senscr[cd2cisen[s]]<kb->ci_pbeam)){ng+=approx_mgau_eval (gs,svq,g,kb,s,senscr,feat,best_cid,svq_beam);ns++;}else {senscr[s]=senscr[cd2cisen[s]]; }if (best < senscr[s]) best = senscr[s];}}kb->rec_sen_active[s]=sen_active[s];}else{ ...}
}// acmfe.L2
if(!is_skip)
{for (s = 0; s < g->n_mgau; s++){if(sen_active[s])senscr[s]-=best;}
}else
{   ...
}/*  Function 6: lextree_hmm_eval   */
// lhe.L1
if (fp) {} else
{if (n_st == 3) {for (i = 0; i < lextree->n_active; i++) {ln = list[i];assert (ln->frame == frm);if (! ln->composite){k = hmm_vit_eval_3st (&(ln->hmm), mdef->sseq[ln->ssid], ascr->sen);}else{k = hmm_vit_eval_3st (&(ln->hmm), d2p->comsseq[ln->ssid], ascr->comsen);}if (best < k)best = k;if (IS_S3WID(ln->wid)) {if (wbest < k)wbest = k;}}}
}else if
{...
} /*  Function 7: mdef_sseq2sen_active   */
// msa.L1
for (ss = 0; ss < mdef_n_sseq(mdef); ss++)
{if (sseq[ss]) {sp = mdef->sseq[ss];for (i = 0; i < mdef_n_emit_state(mdef); i++)sen[sp[i]] = 1;}
}/*   Function 8: approx_mgau_eval */
// ame.L1
if(gs&&kb->gs4gs)
{ng = gs_mgau_shortlist (gs, s, mgau_n_comp(g,s),feat,best_cid);mgau_sl=gs->mgau_sl;
}else if (svq)
{ng = subvq_mgau_shortlist (svq, s, mgau_n_comp(g,s), svq_beam);mgau_sl=svq->mgau_sl;
}else{ng = mgau_n_comp (g, s);mgau_sl=NULL;
}/*  Function 9: dict2pid_comsenscr   */
// dc.L1
for (i = 0; i < d2p->n_comstate; i++)
{// dc.L1.1for (j = 1;; j++) {k = comstate[j];if (NOT_S3SENID(k))break;if (best < senscr[k])best = senscr[k];}
}/*  Function 10: hmm_vit_eval_3st   */
// hve.L1/*  Function 11: lextree_enter   */
// le.L1
for (gn = root; gn; gn = gnode_next(gn))
{ln = (lextree_node_t *) gnode_ptr (gn);   hmm = &(ln->hmm);scr = inscore + ln->prob;if ((scr >= thresh) && (hmm->in.score < scr)) {hmm->in.score = scr;hmm->in.history = inhist;if (ln->frame != nf) {ln->frame = nf;lextree->next_active[n++] = ln;}}
}/*   Function 12: fe_fft */
// ff.L1
for (s = 0; s<N; s++)
{from[s].r = in[s].r/div;from[s].i = in[s].i/div;
}// ff.L1
for (k = N/2; k > 0; k /= 2)
{for (s = 0; s < k; s++){ // ff.L1.1.1            while (ww < wEnd){wwf2.r = f2->r*ww->r - f2->i*ww->i;wwf2.i = f2->r*ww->i + f2->i*ww->r;/* t1 = f1+wwf2                         */t1->r = f1->r + wwf2.r;t1->i = f1->i + wwf2.i;/* t2 = f1-wwf2                            */t2->r = f1->r - wwf2.r;t2->i = f1->i - wwf2.i;/* increment                          */f1 += 2*k; f2 += 2*k;t1 += k; t2 += k;ww += k;}}
}/*  Function 13: lextree_hmm_propagate   */
// lhp.L1/*  Function 14: dict2pid_comsseq2sen_active  */
// dca.L1
for (ss = 0; ss < d2p->n_comsseq; ss++) {if (comssid[ss]) {csp = d2p->comsseq[ss];for (i = 0; i < mdef_n_emit_state(mdef); i++) {cs = csp[i];sp = d2p->comstate[cs];for (j = 0; IS_S3SENID(sp[j]); j++)sen[sp[j]] = 1;}}
}/*  Function 15: lextree_ssid_active  */
// lsa.L1for (i = 0; i < lextree->n_active; i++) {ln = list[i];if (ln->composite)comssid[ln->ssid] = 1;elsessid[ln->ssid] = 1;
}

Benchmark Analysis 7:SPEC2006.482sphinx相关推荐

  1. Benchmark Analysis 7:SPEC2006.429mcf

    1.Hotpots analysis 1.1Hot functions 1.2Hot loops 格式说明: 执行百分比:热点循环占本函数执行比例(热点循环占程序执行比例) Explanation o ...

  2. BABOK - 企业分析(Enterprise Analysis)概要

    描述 企业分析描述我们如何捕捉.提炼并明晰业务需要,并定义一个可能实现这些业务需要的一个方案范围,它包括问题定义和分析,业务案例开发,可行性研究和方案范围定义 目的 明确业务战略需要和目标,并建议方案 ...

  3. X射线图像中的目标检测

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 1 动机和背景 每天有数百万人乘坐地铁.民航飞机等公共交通工具,因 ...

  4. 「每周CV论文」深度学习图像降噪应该阅读哪些文章

    图像降噪是图像处理领域中非常传统和经典的问题,今天给大家推荐学习该领域值得读的文章. 作者&编辑 | 言有三 1 基本CNN结构 图像去噪模型的输出是无噪声的图像,与输入图像大小相同,所以可以 ...

  5. 【每周CV论文】深度学习图像降噪应该从阅读哪些文章开始

    欢迎来到<每周CV论文推荐>.在这个专栏里,还是本着有三AI一贯的原则,专注于让大家能够系统性完成学习,所以我们推荐的文章也必定是同一主题的. 图像降噪是图像处理领域中非常传统和经典的问题 ...

  6. 【CVPR2019】论文完整列表一

    CVPR 2019 Paper list No.1-1000 ?CVPR2019 完整列表二 论文题目与链接 Finding Task-Relevant Features for Few-Shot L ...

  7. 【今日CV 视觉论文速览】Tue 21 Mar 2019

    今日CS.CV计算机视觉论文速览 Tue 21 Mar 2019 Totally 24 papers Daily Computer Vision Papers [1] Title: Photometr ...

  8. 【今日CV 计算机视觉论文速览 第138期】Mon, 1 Jul 2019

    今日CS.CV 计算机视觉论文速览 Mon, 1 Jul 2019 Totally 71 papers ?上期速览✈更多精彩请移步主页 Interesting: ?***PointFlow基于连续no ...

  9. 超1亿人次嗨玩猜画夺宝 AI助灵魂画手智抢红包

    从远古时期开始,人类就已经学会了用简单的涂鸦去描绘自己看到的世界,而到了今天,涂鸦或者更准确的说是简笔画,可能是唯一的全人类通用的绘画技能.如果给你一张纸和一支笔,请你画出一双大眼睛,美术生画出来的可 ...

最新文章

  1. 2021重庆江北中学高考成绩查询,重庆江北中学校2021年排名
  2. SAP QM 检验批上留样记录如何看?
  3. 数据挖掘与机器学习介绍
  4. Java学习|先定一个小目标比如让行为聚焦
  5. iptables命令结构之命令
  6. jzoj3169-[GDOI2013模拟4]生产汽车【斜率优化dp,单调队列,二分】
  7. Could not find the required component ‘tf2_geometry_msgs‘. The following CMake error indicates that
  8. ASP.NET MVC 3.0(十二): MVC 3.0 使用自定义的Html控件
  9. 正则RegExp对象的用法
  10. jupyter运行时in[*]是什么原因_变頻器的停止按钮按下时,电机反而不受控制加速运行是什么原因?...
  11. 一个简单的HTML5后台登陆界面及登录实现
  12. Word 页眉 页脚 出现一条横线删不掉
  13. html怎样修改背景图片大小,css中如何设置背景图片的大小?
  14. 智工教育:一消《技术实务》知识点整理
  15. BOX3开发者工具使用说明
  16. IBM X3650服务器使用说明一
  17. PPT基础(二十二)裁剪图片
  18. 动态给div背景图片赋值
  19. 电脑输入英文字母间距太大
  20. JAVA内存管理机制

热门文章

  1. 测绘工程本科生如何入门GNSS算法 - 引言
  2. C语言面试篇(一)总结
  3. visio的细的箭头
  4. 毕设学习笔记(1):经典DV-Hop算法(MATLAB)
  5. 四大类好用的科研工具分享
  6. 【C语言】#和##的作用
  7. 安装青龙面板开启京东白嫖模式
  8. JAVA中反射是什么?
  9. c语言:已知斐波那契数列定义:f(0) = 0; f(1) = 1;f(n) = f(n-1) + f(n-2);请计算并输出数列的前n(n<=30)项。
  10. Umijs 的安装部署及快速入门