从芯片的数据手册得知,对于单精度数据,.M可以在一个时钟周期中完成4次乘法。那么可以认为,6678的单核对单精度数据的乘法执行效率为,一个时钟周期完成8次乘法。但目前测试向量点乘函数,发现长度为4096的向量,点乘的耗时为3496cycles,这如何解释?如何使得,芯片中.m使用率最高,也就是说一个时钟周期可完成8次单精度数据乘法
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
从芯片的数据手册得知,对于单精度数据,.M可以在一个时钟周期中完成4次乘法。那么可以认为,6678的单核对单精度数据的乘法执行效率为,一个时钟周期完成8次乘法。但目前测试向量点乘函数,发现长度为4096的向量,点乘的耗时为3496cycles,这如何解释?如何使得,芯片中.m使用率最高,也就是说一个时钟周期可完成8次单精度数据乘法
工程编译时加上 -mw,-k,-s, 通过生成的汇编文件 *.asm , 观察这个函数的资源处理情况 就知道.M单元的资源占用情况了
谢谢你的回复。我尝试配置编译器选项,运行out文件,通过反汇编的方式查看,发现其中两个乘法器不是并行的,同时也没法得知每个乘法器在一个周期内可完成4次乘法。请问是我的方法有问题,还是?
目前使用DSPF_sp_vecmul函数完成两向量的乘法。但想要知道该函数做乘法的时候,DSP6678的两个乘法器是否能up to eight single-precision multiplies per cycles.
这个是否并行,是编译器来安排的,在资源不受限的情况下,尽可能并行。您的配置中开O3优化了吗?
使用了O3优化,但是DMPYSP的调用不是并行的。