Skip to main content
欢迎来到PAWPAW技术文档网站了解更多信息

XMOS平台算法移植指南

引言

  1. xcore.ai 芯片平台概述
  2. xcore.ai 架构与硬件指南
  3. 音频算法案例:xcore voice 语音方案,集成了USB Audio,DSP流水线,以及基于神经网络的语音识别模型

硬件资源理解和使用

XCORE.AI系列芯片说明

  1. 对芯片特性的说明
  2. 关键硬件组件简介(处理器,内存,接口等)
  3. XMOS开发工具链

快速验证算法

  1. 搭建开发环境
  2. 通过XMOS-wave-IO在XMOS平台上快速验证你的算法,通过这种方式,你可以快速获得算法的评估结果与反馈,而不用做任何嵌入式系统集成。

移植音频算法

  1. 选择一个基础工程包:
  2. 将你的算法通过C语言添加到工程包中(使用上一章中的快速验证算法)
  3. 通过常用的XTC工具调试代码

基于XMOS平台特性优化

  1. XCORE DSP概述介绍PPT:XCORE平台的关键特性,通过VPU加速DSP,性能对比介绍
  2. XMOS的DSP库:浮点定点转换,向量加速以及滤波器,高达10倍的性能提升
  3. DSP性能速查表:DSP库函数的性能报告

特殊问题处理

  1. 在XMOS平台上常见的问题和解决方案
  2. 硬件兼容性和性能问题处理
  3. 处理高级音频算法中可能遇到的问题

部分函数的解决建议

函数列表建议解决方案
atan2f使用C库中的函数
sqrt可以使用C库中的sqrtf函数(耗时285个周期)。使用_XS3_sqrtf(耗时259个周期)。如果不需要处理NAN,可能只需要160个周期
1/sqrt还在探索中,暂无明确解决方案
log可以使用 f32_log2.s.log10(x)=log2(x)logx(10)f32\_log2.s.log10(x) = \frac{log2(x)}{logx(10)} 的方法进行计算
exp可以使用float_s32_exp()函数
fabs可以使用C库中的float_s32_abs()函数
复数阶乘(factorial complex)正在研究中,尚未找到明确解决方案
IIR, FIR可以使用vect_complex_f32_macc.S实现
FFT建议使用wrap函数
TRNG硬件上没有TRNG支持,(lib_random提供了软硬件的伪随机)
tanh可以使用C库中的函数,或者使用 exp(2x)1exp(2x)+1\frac{exp(2x)-1}{exp(2x)+1} 的计算方式
relu使用条件运算符,当x>ax>a时返回xx,否则返回0
sigmoid可以使用11+exp(x)\frac{1}{1+exp(-x)}tanh(x)tanh(x),或者 atan2f(x)atan2f(x) 的计算方式