跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
折叠
品牌标识

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1H系列
  4. 32B1H的DSP算力测试与困惑

32B1H的DSP算力测试与困惑

已定时 已固定 已锁定 已移动 已解决 YTM32B1H系列
20 帖子 5 发布者 7.6k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • yxydoctorY 离线
    yxydoctorY 离线
    yxydoctor
    写于 最后由 编辑
    #1

    测试平台:32B1H官方评估板;
    竞品平台:某国产M4评估板;

    资源: 32B1H 竞品M4
    cache 8K 4K
    主频 200M 160M
    TCM 有 无

    测试例程:
    precise_us_time(0);
    for(i=0;i<10000;i++){
    DspResult = arm_cos_f32(0.678f)+arm_sin_f32(0.876f);
    }
    debug_time[0]=precise_us_time(1);

    有一点需要注意:测试代码是在点灯app中循环运行的。32B1H只有两个点灯app,一个gpt中断;而竞品线程,中断比较多,会有额外的时间开销。

    测试结果:
    32B1H 竞品M4
    5952 ms 8700 ms

    简单分析:
    这个结果似乎让人高兴不起来。理论同频同频情况下,M7速度大概为M4的1.5倍,考虑主频差异,则理论上32B1H的时间开销应为:8700/1.5/(200/160)=4640ms。

    这时候显然会考虑TCM方案,代码变量均放入TCM重复测试,结果却发现效率更低了,计算时间为6800ms。大估计是cache已经把油水榨干了,启用TCM没什么作用。
    #define DTCM_VAR attribute((section(".dtcm_data")))
    #define ITCM_VAR attribute((section(".ramcode")))

    多少有点失望,也有点困惑。

    1 条回复 最后回复
    0
    • yxydoctorY 离线
      yxydoctorY 离线
      yxydoctor
      在 回复了 Frankie 最后由 编辑
      #13

      Frankie
      多谢原厂支持;32H1H属于高端车规MCU,担心水平所限玩不好。加上前期围绕z20k14x做了很多测试工作,所以才测了一下。

      1 条回复 最后回复
      0
      • majorM 离线
        majorM 离线
        major YunTu
        写于 最后由 编辑
        #2

        可以再看一下堆栈是否在dtcm区域,优化等级,代码运行在itcm,如果使用ocram或者flash则需要开启cache

        yxydoctorY 1 条回复 最后回复
        0
        • yxydoctorY 离线
          yxydoctorY 离线
          yxydoctor
          在 回复了 major 最后由 编辑
          #3

          major
          用的就是官方Dio例程,IAR环境下,优化等级均为“中等”。默认的链接文件
          // 栈空间在DTCM
          define exported symbol STACK_memory_start = 0x2001f000;
          define exported symbol STACK_memory_end = 537001983;
          define region STACK = mem:[from STACK_memory_start to STACK_memory_end]; /4096/

          // 中断表在DTCM
          define exported symbol IVT_memory_start = 0x2000800;
          define exported symbol IVT_memory_end = 33557503;
          define region IVT = mem:[from IVT_memory_start to IVT_memory_end]; /1024/

          cache默认也是开着的。

          1 条回复 最后回复
          0
          • yxydoctorY 离线
            yxydoctorY 离线
            yxydoctor
            写于 最后由 编辑
            #4

            无标题.jpg

            1 条回复 最后回复
            0
            • majorM 离线
              majorM 离线
              major YunTu
              写于 最后由 编辑
              #5

              另外cm7和cm4的dsp模块是一样的,算力表现只和频率有关,cm7对比cm4 cpu算力和dsp对比是有差异的

              yxydoctorY 1 条回复 最后回复
              0
              • yxydoctorY 离线
                yxydoctorY 离线
                yxydoctor
                在 回复了 major 最后由 编辑
                #6

                major 在 32B1H的DSP算力测试与困惑 中说:

                另外cm7和cm4的dsp模块是一样的,算力表现只和频率有关,cm7对比cm4 cpu算力和dsp对比是有差异的

                早先用nxp的rt1021的时候也是测过的。400M主频,放TCM跑,也就2000ms的样子

                1 条回复 最后回复
                0
                • FrankieF 离线
                  FrankieF 离线
                  Frankie YunTu
                  写于 最后由 编辑
                  #7

                  yxydoctor 分享一下你的这个测试工程,我们来看一下?

                  yxydoctorY 1 条回复 最后回复
                  0
                  • yxydoctorY 离线
                    yxydoctorY 离线
                    yxydoctor
                    在 回复了 Frankie 最后由 编辑
                    #8

                    Frankie 在 32B1H的DSP算力测试与困惑 中说:

                    yxydoctor 分享一下你的这个测试工程,我们来看一下?

                    uint32 precise_us_time(uint8 mode)
                    {
                    	static uint32 count[2];
                        uint32 temp=0;
                    	switch(mode){
                    		case 0:	// 开始
                                count[0] = Gpt_GetTimeElapsed(0); 
                    			break;
                    		case 1:	// 停止
                                count[1] =  Gpt_GetTimeElapsed(0);           
                                if(count[1] >=count[0]) temp =count[1]-count[0];
                                else                    temp = 0xffffffff-(count[0]-count[1]-1);  
                                temp = temp/50;                                                             // 1us(clk=50M)  
                    			break;
                    		default:break;
                    	}
                    	return(temp);
                    }
                    
                    #define DTCM_VAR __attribute__((section(".dtcm_data")))
                    #define ITCM_VAR __attribute__((section(".ramcode")))
                    
                    uint32 precise_us_time(uint8 mode);
                    uint32_t test_led_count[2]={0};
                    
                    //DTCM_VAR 
                    float32_t DspResult=0.0f;
                    
                    
                    //ITCM_VAR 
                    void App_Led1(ULONG thread_input)
                    {
                        uint32 i;
                        while (1){
                            test_led_count[0]++;
                            Dio_FlipChannel(DioConf_DioChannel_D17_PTE16); /* toggle D17 */   
                            
                            // dsp测试 1.54698824
                            precise_us_time(0); 
                            for(i=0;i<10000;i++){
                                DspResult = arm_cos_f32(0.678f)+arm_sin_f32(0.876f);      
                            }        
                            debug_time[0]=precise_us_time(1);       
                    
                            
                            
                            
                    		tx_thread_sleep(500);
                        }
                    }
                    
                    1 条回复 最后回复
                    0
                    • yxydoctorY 离线
                      yxydoctorY 离线
                      yxydoctor
                      写于 最后由 编辑
                      #9

                      tcm跑是6800us,否则是5900us。因为tcm会自动屏蔽cache,
                      所以tcm对提高速度没积极作用,但至少不会更慢才对呀。
                      定时器是用了一路Gpt

                      1 条回复 最后回复
                      0
                      • FrankieF 离线
                        FrankieF 离线
                        Frankie YunTu
                        写于 最后由 编辑
                        #10

                        yxydoctor thread 的心跳是多少,1ms?

                        1 条回复 最后回复
                        0
                        • yxydoctorY 离线
                          yxydoctorY 离线
                          yxydoctor
                          写于 最后由 编辑
                          #11

                          os心跳是1ms

                          1 条回复 最后回复
                          0
                          • FrankieF 离线
                            FrankieF 离线
                            Frankie YunTu
                            写于 最后由 编辑
                            #12

                            昨天下来我们内部测了一下,
                            结论:
                            DSP的性能方面,M7比M4没有50%的提示(COREMARK 不代表DSP性能)
                            测试:

                            DEVICE Freq Result Comiler
                            S32K344 160M 7191 GCC -O1
                            YTM32B1HA0 200M 5700 GCC -O1

                            major 在 32B1H的DSP算力测试与困惑 中说:

                            另外cm7和cm4的dsp模块是一样的,算力表现只和频率有关,cm7对比cm4 cpu算力和dsp对比是有差异的

                            yxydoctorY gaoShengG 3 条回复 最后回复
                            0
                            • yxydoctorY 离线
                              yxydoctorY 离线
                              yxydoctor
                              在 回复了 Frankie 最后由 编辑
                              #13

                              Frankie
                              多谢原厂支持;32H1H属于高端车规MCU,担心水平所限玩不好。加上前期围绕z20k14x做了很多测试工作,所以才测了一下。

                              1 条回复 最后回复
                              0
                              • gaoShengG 离线
                                gaoShengG 离线
                                gaoSheng
                                在 回复了 Frankie 最后由 编辑
                                #14

                                Frankie 在 32B1H的DSP算力测试与困惑 中说:

                                Result

                                请问这个Result是COREMARK分数吗,这个工程能分享一下不。我尝试测试了一下HA的dhrystone。7b328010-7225-49e7-9fb3-7bd3036fd852-9e55b5a355b768469bd60d8930f7656.png

                                DMPIS:268 DMIPS/MHZ:1.34

                                对比S32K3似乎有一些差距,也可能是我dhrystone移植或者优化的问题
                                9496ab08-fd65-4e17-a46a-aea908b87773-d8282b8dcbac661972344f458bd4877.png
                                下面是我的工程
                                3df0a944-1258-46fb-b97d-dca604feeaa2-Ptmr_Demo (2).zip

                                1 条回复 最后回复
                                0
                                • gaoShengG 离线
                                  gaoShengG 离线
                                  gaoSheng
                                  在 回复了 Frankie 最后由 编辑
                                  #15

                                  Frankie 试了一下coremark Keil优化等级-o3 使用了Cache CoreMark 1.0 : 814.332 请问这个分数是合理的吗
                                  a34ad260-b7be-4d53-97a6-d50d67713d41-7f20119344ca4680dec601c891360f1.png

                                  跟一个240Mhz的MCU分数相近, 不过内核不同
                                  43b05559-24df-4020-b800-9156649c90e5-image.png

                                  60f5e58c-1030-469b-b282-73a2eae82a54-Ptmr_Demo _coremark.zip

                                  1 条回复 最后回复
                                  0
                                  • FrankieF 离线
                                    FrankieF 离线
                                    Frankie YunTu
                                    写于 最后由 编辑
                                    #16

                                    放心,不会有什么性能问题的

                                    gaoShengG 1 条回复 最后回复
                                    0
                                    • gaoShengG 离线
                                      gaoShengG 离线
                                      gaoSheng
                                      在 回复了 Frankie 最后由 编辑
                                      #17

                                      Frankie 不是担心性能,是有客户要我们HA的算力参数

                                      1 条回复 最后回复
                                      0
                                      • FrankieF 离线
                                        FrankieF 离线
                                        Frankie YunTu
                                        写于 最后由 编辑
                                        #18

                                        测出来和ARM官方给出的数据差不多,没有问题

                                        1 条回复 最后回复
                                        1
                                        • DigaD 离线
                                          DigaD 离线
                                          Diga
                                          写于 最后由 编辑
                                          #19

                                          image.png

                                          算力单位一般是 CoreMark/MHz,是要除以主频的,开 Cache 的话 4.5 应该是没啥问题的

                                          1 条回复 最后回复
                                          1
                                          • yxydoctorY 离线
                                            yxydoctorY 离线
                                            yxydoctor
                                            写于 最后由 编辑
                                            #20

                                            结论趋同, 综合算力相当于一颗240M的M4,但会稍微快一点。

                                            开CACHE后,开不开TCM,无明显变化。估计是因为200M的主频不够高。

                                            开始打样了,希望一切顺利。

                                            1 条回复 最后回复
                                            0
                                            • FrankieF Frankie 将这个主题转为问答主题,在
                                            • FrankieF Frankie 将这个主题标记为已解决,在

                                          • 云途开发生态介绍

                                            快速上手云途开发生态

                                          • 云途论坛规则/Yuntu Forum Rules

                                            发帖前请查看

                                          • YT CONFIG TOOL调查问卷

                                            帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...

                                          • can
                                            28
                                            demo
                                            23
                                            uds
                                            14
                                            lin stack
                                            13
                                            md14
                                            6
                                            yt-link
                                            6
                                            fbl
                                            5
                                            adc模块
                                            4
                                            Online Users
                                            • 登录

                                            • 登录或注册以进行搜索。
                                            • 第一个帖子
                                              最后一个帖子
                                            0
                                            • 版块
                                            • 最新
                                            • 标签
                                            • 热门