zoukankan      html  css  js  c++  java
  • 往期技术文章勘误

    最近在整理一个材料,借用了我在往期推送的一些技术文章中的内容。回头看文章中的细节,发现还是存在一些当时理解不充分,或者是笔误的地方。由于微信推送出去的文章已经不便于更改(除非重新推送),因此就特起一篇勘误文章,把目前发现的错误订正下,希望没有给大家带来困扰。

     

    《TI C6000优化手册——让代码看起来像钉子》

    错误位置:描述“restrict”关键字的部分。

    原文:“restrict”关键字也不能随便乱加,我们需要了解C6000的片上内存组成,只有当两个指针所指的内存在不同的block里时,restrict才是合法的。

    解析:正如“restrict”的作用所言,用它声明过的指针变量,能够保证不会同其它指针变量指向同一个数据体。这与指针指向的数据体是否在同一个block存储区无关,也不需要考虑具体的片上内存组成形式。比如:

    short *restrict a; 

    short *b;

    short x[100];

    short y[100];

     

    这里可以确认程序不会出现a=x;b=x;的情况。而a=x;b=y是合法的,即使数组x和y在同一个block中对齐到了同一个bank。

    勘误:删除该句。

     

    《现代处理器与代码性能优化》

    错误位置:代码片段3 

    原文:

    void array_sum(short *a, short *sum, length)

    {

         unsigned int i;

         short sum_temp1 = 0;

         short sum_temp2 = 0;

         for(i=0; i<length-1 ; i+=2)

         {

              sum_temp1 = sum_temp1   + a[i];

              sum_temp2 = sum_temp2   + a[i+1];

         }

         for(; i<length; i++)

         {

              sum_temp1 = sum_temp1   + a[i];

         }

         *sum = sum_temp1 + sum_temp1;

    }

     

    解析:最后一条语句中的一个sum_temp1应更改为sum_temp2。

    勘误:

    void array_sum(short *a, short *sum, length)

    {

         unsigned int i;

         short sum_temp1 = 0;

         short sum_temp2 = 0;

         for(i=0; i<length-1 ; i+=2)

         {

              sum_temp1 = sum_temp1   + a[i];

              sum_temp2 = sum_temp2   + a[i+1];

         }

         for(; i<length; i++)

         {

              sum_temp1 = sum_temp1   + a[i];

         }

         *sum = sum_temp1 + sum_temp2;

    }

     


    错误位置:4.1节 确认性能瓶颈,其中讲到Amdahl定律可以用公式表达为: Told/Tnew = 1/[(1-a) + a/b]。

    原文:设原程序执行时间为Told,其某部分代码所需执行时间占该时间的比例为a,而该部分性能提升的比例为b。

    解析:最后一小句中b表示为待优化部分代码性能提升的比例有误,很容易会发现这里公式推导不通,b正确的含义是待优化部分代码性能提升的倍数。

    勘误:设原程序执行时间为Told,其某部分代码所需执行时间占该时间的比例为a,而该部分性能提升的倍数为b。

     

     

     

    ·END·

     

    欢迎来我的微信公众号做客:信号君

    专注于信号处理知识、高性能计算、现代处理器&计算机体系 

     

    技术成长 | 读书笔记 | 认知升级

    幸会~

  • 相关阅读:
    AtCoder Regular Contest 093
    AtCoder Regular Contest 094
    G. Gangsters in Central City
    HGOI 20190711 题解
    HGOI20190710 题解
    HGOI 20190709 题解
    HGOI 20190708 题解
    HGOI20190707 题解
    HGOI20190706 题解
    HGOI 20190705 题解
  • 原文地址:https://www.cnblogs.com/ncdxlxk/p/9248629.html
Copyright © 2011-2022 走看看