用于 Ada 的新数学库:Neo.SIMD

主要观点:在构建游戏引擎时通常需要线性代数库,Ada 中自定义数学库的选择有限,因此创建了 Neo.SIMD 库。SIMD 可一次对多个值进行操作,能减少计算周期。Neo.SIMD 的目标是利用手写汇编实现关键线性代数函数等。通过研究 Terathon Math Library 确定关键函数,对比了使用内在函数和手写汇编实现 4D 矩阵乘法的代码,展示了手写汇编的优势。进行了基准测试,发现朴素方法在很多任务中表现出色,Neo.SIMD 比参考库在核心函数上快 25%。
关键信息

  • Neo.SIMD 是为 Ada 设计的自定义数学库。
  • SIMD 可提高线性代数运算效率。
  • 确定的关键函数包括向量的最值、算术运算等。
  • 对比了两种 4D 矩阵乘法实现方式的优缺点。
  • 基准测试结果显示不同实现的性能差异。
    重要细节
  • 给出了不同函数在各种库中的运行时间对比图。
  • 提到现代编译器和工具的力量,以及后续计划继续扩展和基准测试。
  • 项目地址为https://github.com/AdaDoom3/Neo.SIMD
阅读 7
0 条评论