Can*_*Bal 6 c c++ embedded signal-processing omap
我正在为OMAP3430开发视频编解码器.我已经有用C++编写的代码,我尝试修改/移植它的某些部分以利用DSP(SDK(OMAP ZOOM3430 SDK)我有一个额外的DSP).
我尝试移植一个小的for循环,它运行的是非常少量的数据(~250字节),但是在不同的数据上大约需要2M次.但CPU和DSP之间通信的过载远远超过增益(如果我有的话).
我认为这个任务就像在普通计算机中优化GPU的代码一样.我的问题是移植什么样的部件会有益?GPU程序员如何处理这些任务?
在这些之后,DSP程序的执行开始,并且DSP在完成处理时通过消息通知GPP.只是为了尝试我不在DSP程序中进行任何处理.我只是将"处理完成"消息发送回GPP.这仍然需要耗费大量时间.可能是因为内部/外部内存使用,还是因为通信过载?
Can*_*Bal -1
根据我的测量,CPU 和 DSP 之间的一个消息传递周期大约需要 160us。我不知道这是因为我使用的内核,还是桥驱动程序的原因;但这对于简单的来回消息来说是很长的时间。
看来,只有当总计算负载与消息传递所需的时间相当时,将算法移植到 DSP 才是合理的;以及该算法是否适合在CPU和DSP上同时计算。