Assembly &引用;“失踪”;Tilera和SSE中的算术指令。手术是如何进行的?

Assembly &引用;“失踪”;Tilera和SSE中的算术指令。手术是如何进行的?,assembly,multicore,sse,instruction-set,Assembly,Multicore,Sse,Instruction Set,我浏览了一下,发现它只有加、减、乘、除和移位。没有提到根、权力、日志等 我还注意到SSE(所有口味)没有后一种说明 Tilera和SSE都是为基于数学的处理而设计的,比如视频编码,所以这让我很好奇 在这种情况下(Tilera和SSE[不包括常规标量运算])如何执行这些操作之一?为了保持硬件简单,它们通常只执行最常用的最基本、最简单的指令 最先进的功能不太常用,也占用了处理器上大量的硅和芯片空间。触发功能、日志、电源等难以实现且成本高昂 在任何情况下,几乎所有的特殊函数都分解为基本运算(加法/减法

我浏览了一下,发现它只有加、减、乘、除和移位。没有提到根、权力、日志等

我还注意到SSE(所有口味)没有后一种说明

Tilera和SSE都是为基于数学的处理而设计的,比如视频编码,所以这让我很好奇


在这种情况下(Tilera和SSE[不包括常规标量运算])如何执行这些操作之一?

为了保持硬件简单,它们通常只执行最常用的最基本、最简单的指令

最先进的功能不太常用,也占用了处理器上大量的硅和芯片空间。触发功能、日志、电源等难以实现且成本高昂

在任何情况下,几乎所有的特殊函数都分解为基本运算(加法/减法/乘法/除法),因此只要您提供这些运算,您就可以实现任何操作


如果没有太多依赖于数据的分支,通常可以对特殊函数进行向量化。因为您可以简单地采用标量实现并用SIMD版本替换所有内容。

您可以在软件中实现它们。例如,在硬件中实现一个自然日志需要大量的硅材料…@Mystical。。。有趣的是你应该回答。一小时前我还在你的网站上。好的,那么对于Intel,你必须使用标量FP指令,而对于Tilera,你会有一些性能糟糕的代码?比硅慢两个数量级?是的
x=y^1.5
或任何其他函数最终都会分解为加法/减法/乘法等。。。因此,如果没有太多依赖于数据的分支,它们通常是可向量化的。这些可以使用泰勒级数来完成。这可能需要额外的参数缩减步骤,但昂贵的工作可以使用向量化泰勒级数求值来完成。对于sin/cos,这里介绍了一种替代方法: