Fortran Coder

查看: 20866|回复: 26
打印 上一主题 下一主题

[站务建议] 突发奇想,大家一起来汉化MKL吧?

  [复制链接]

69

帖子

7

主题

0

精华

专家

F 币
320 元
贡献
224 点
楼主
发表于 2014-10-9 10:00:39 | 显示全部楼层
与其翻译mkl,不如搞个常用算法列表,然后大家采用标准Fortran加以实现,最后fcode选择比较优化的代码集成一个库共享给大家。

好像前一段时间有个类似想法的帖子。

69

帖子

7

主题

0

精华

专家

F 币
320 元
贡献
224 点
沙发
发表于 2014-10-9 10:06:04 | 显示全部楼层
编译器实现的很多内置函数通常只是确保能用,一般其算法并不保证是最优化的,MKL里面的算法是否最优估计也是有疑问的。

69

帖子

7

主题

0

精华

专家

F 币
320 元
贡献
224 点
板凳
发表于 2014-10-9 16:37:32 | 显示全部楼层
楚香饭 发表于 2014-10-9 10:17
我也更倾向于做自己的开源函数库。但是难度也更大。

大而全是很难的,但少数常用的还是有可能的。以前看过一个帖子讲某个3d游戏在很差的机器上运行都很顺畅的关键是因为其实现了该游戏中大量用到的一个求平方根倒数的很牛函数,所以借用新标准带来的一些功能(比如位操作等)实现以前只能由C实现的一些算法估计还是有可能的,当然也可以直接封装过来。

69

帖子

7

主题

0

精华

专家

F 币
320 元
贡献
224 点
地板
发表于 2014-10-24 09:20:42 | 显示全部楼层
fcode 发表于 2014-10-9 16:42
逐步来做吧。既然大家决定了先翻译MKL,可以先做完看看。

确实这个网站,这个论坛,参与进来的人还是不够 ...

IBM 的 XL Fortran编译器提供的 matmul 内置函数增加了一个附加选项,如果略去该选项则内置函数采用普通矩阵乘法计算,该方法为 O(N**3)但可靠稳定。如果选了该附加选项,则采用 Winograd variation of the Strassen algorithm,这个算法速度快但在某些情况下会出现不稳定问题。

Intel 的MKL针对其自己的处理器做到了最大程度的优化(最合适的算法?),但对其他处理器是否最优需要试过才知道,没准用的是较慢的算法,毕竟其开发编译器的目的主要是为了销售硬件。

所以对于计算量极大的程序开发,针对问题和采用的硬件研究算法是必要的。当然如果速度不重要则还是采用编译器提供的算法最稳妥,因为编译器追求的第一目标是稳定。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-11-11 03:42

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表