展开讨论

创业与收入经验摘录 · 机器翻译

在为训练神经网络的GPU库可用之前,我曾参与过一个产品……

… 在为神经网络训练提供GPU库之前,我曾参与一个产品,该产品使用基于SIMD的神经网络训练器,该训练器是用手工编写的汇编语言编写的。我们这一代在AVX指令上落后了,所以我们放弃了一半本可以得到的性能,但这并不是我们为将产品推向客户而必须克服的唯一挑战。[1] 我对英特尔问题的软件导向观点是,他们一直在花费客户和股东的钱,将一些功能放入芯片中,这些功能被熔断或可能被熔断,因为它们在行业中并未广泛支持。而且他们没有将此视为一个问题,他们的计算媒体和软件行业的支持者也没有。举个例子,苹果以前会随Intel芯片一起提供MKL库,这就像矩阵数学的涡轮增压器。不管是什么原因,微软在Windows上没有这样做,大多数Linux发行版也没有,因此“我们其他人”只能获得我们所支付性能的一小部分。…

源讨论SIMD ISAs的根本缺陷(2021)原帖 144 条评论 · 导入时统计
3

这条内容在回应什么?

父级讨论 · 节选

TI

我写了很多SIMD代码,但我并不完全同意这个观点。 缺点1:固定宽度 我更喜欢固定宽度,因为它使代码更简单,大小在编译时已知,所以我们知道结构的大小。混洗算法也是根据大小定制的。 缺点2:流水线 我关心的任何CPU都是顺序的,所以基本上不相关,而且即使标量指令也是流水线的。 缺点3:尾处理 我以SIMD为目标进行编码,并且有特殊的容器将内存填充到SIMD宽度,不需要掩码或运行标量循环。我将最后一个有效值复制到剩余的插槽中,这样不会导致任何分支发散。

完整原文

社区评论 0

还没有社区评论,来聊聊你的看法。

原讨论中的回复 3

仅展示本次导入中包含的直接回复。中文为机器翻译,可查看英文原文。

BE

MKL没有开源真有点遗憾,因为这样会让它在Linux上的集成更容易。它已经是免费的了,但当然这并不能解决所有问题。 令人费解的是,微软没有使用它。他们之间的关系很密切…… 我同意他们现在似乎在追求难以使用的小众功能。但我觉得,我们真正想要的——对于分支代码的单线程性能——现在很难提升。

完整原文
AC

AVX-512也拥有许多对自动向量化非常有帮助的功能,但我怀疑它最初的降频效应以及在Alder Lake中被移除,大大削弱了在编译器和库中使用它的动力。 即使Steam硬件调查(偏向高端硬件)显示,只有16%的设备支持基础的AVX-512,而AVX2的支持率却高达94%。

完整原文
TH

新手问题!AVX-512有什么特别之处让汇编程序员感兴趣吗?我只是刚开始接触,一直在用f32x8、Vec3x8等(AVX-256)做化学计算。我的工作流已经设置好了,但只获得了2倍的加速(原本希望接近8倍)。我以为AVX-512可以支持f32x16等,这基本上是直接替换的。(我有宏来设置类型,你只需要输入通道数)。

完整原文
在 Hacker News 阅读

尊重不同观点,分享具体经验。

登录后即可发帖、评论、转发和引用。