ES6学习笔记(二十二) - SIMD的理解

导语:大概了解一下,后面的内容相对枯涩,留待以后需要再了解了。

原文:http://es6.ruanyifeng.com/#docs/simd

SIMD


1.概述

SIMD(发音/sim-dee/)是“Single Instruction/Multiple Data”的缩写,意为“单指令,多数据”。它是JavaScript操作CPU对应指令的接口,你可以看做这是一种不同的运算执行模式。与它相对的是SISD(“Single Instruction/Single Data”),即“单指令,单数据”。


为了理解SIMD,请看下面的例子。

var a = [1, 2, 3, 4];
var b = [5, 6, 7, 8];
var c = [];
c[0] = a[0] + b[0];
c[1] = a[1] + b[1];
c[2] = a[2] + b[2];
c[3] = a[3] + b[3];
c // Array[6, 8, 10, 12]


如果采用SIMD模式,只要运算一次就够了。

var a = SIMD.Float32x4(1, 2, 3, 4);
var b = SIMD.Float32x4(5, 6, 7, 8);
var c = SIMD.Float32x4.add(a, b); // Float32x4[6, 8, 10, 12]


2.数据类型

SIMD提供12种数据类型,总长度都是128个二进制位。


Float32x4:四个32位浮点数

Float64x2:两个64位浮点数

Int32x4:四个32位整数

Int16x8:八个16位整数

Int8x16:十六个8位整数

Uint32x4:四个无符号的32位整数

Uint16x8:八个无符号的16位整数

Uint8x16:十六个无符号的8位整数

Bool32x4:四个32位布尔值

Bool16x8:八个16位布尔值

Bool8x16:十六个8位布尔值

Bool64x2:两个64位布尔值


其他内容,详见原文


 赞(0
成功
相关阅读: