Currently SIMD is supported by all the CPUs, I think it will be meaningful
to support SIMD in Julia.
The easy way should be using typed vector, like the Dart language. We can
have the some vector types, for example: ByteData<https://api.dartlang.org/apidocs/channels/stable/#dart-typed_data.ByteData>
, Float32List<https://api.dartlang.org/apidocs/channels/stable/#dart-typed_data.Float32List>
, Float32x4List<https://api.dartlang.org/apidocs/channels/stable/#dart-typed_data.Float32x4List>
, Float64List<https://api.dartlang.org/apidocs/channels/stable/#dart-typed_data.Float64List>
, Int16List<https://api.dartlang.org/apidocs/channels/stable/#dart-typed_data.Int16List>
, Int32List<https://api.dartlang.org/apidocs/channels/stable/#dart-typed_data.Int32List>
, Int32x4List<https://api.dartlang.org/apidocs/channels/stable/#dart-typed_data.Int32x4List>
, Int64List<https://api.dartlang.org/apidocs/channels/stable/#dart-typed_data.Int64List>
, Int8List<https://api.dartlang.org/apidocs/channels/stable/#dart-typed_data.Int8List>
, Uint16List<https://api.dartlang.org/apidocs/channels/stable/#dart-typed_data.Uint16List>
, Uint32List<https://api.dartlang.org/apidocs/channels/stable/#dart-typed_data.Uint32List>
, Uint64List<https://api.dartlang.org/apidocs/channels/stable/#dart-typed_data.Uint64List>
, Uint8ClampedList<https://api.dartlang.org/apidocs/channels/stable/#dart-typed_data.Uint8ClampedList>
, Uint8List<https://api.dartlang.org/apidocs/channels/stable/#dart-typed_data.Uint8List>
If a variable var is a typed vector, then any function f(var) will be
automatically executed parallelly using the SIMD unit in the CPU. This
would accelerate the execution significantly!
Dart language is open source, it would be easy to find out how it
implements the SIMD support.
to support SIMD in Julia.
The easy way should be using typed vector, like the Dart language. We can
have the some vector types, for example: ByteData<https://api.dartlang.org/apidocs/channels/stable/#dart-typed_data.ByteData>
, Float32List<https://api.dartlang.org/apidocs/channels/stable/#dart-typed_data.Float32List>
, Float32x4List<https://api.dartlang.org/apidocs/channels/stable/#dart-typed_data.Float32x4List>
, Float64List<https://api.dartlang.org/apidocs/channels/stable/#dart-typed_data.Float64List>
, Int16List<https://api.dartlang.org/apidocs/channels/stable/#dart-typed_data.Int16List>
, Int32List<https://api.dartlang.org/apidocs/channels/stable/#dart-typed_data.Int32List>
, Int32x4List<https://api.dartlang.org/apidocs/channels/stable/#dart-typed_data.Int32x4List>
, Int64List<https://api.dartlang.org/apidocs/channels/stable/#dart-typed_data.Int64List>
, Int8List<https://api.dartlang.org/apidocs/channels/stable/#dart-typed_data.Int8List>
, Uint16List<https://api.dartlang.org/apidocs/channels/stable/#dart-typed_data.Uint16List>
, Uint32List<https://api.dartlang.org/apidocs/channels/stable/#dart-typed_data.Uint32List>
, Uint64List<https://api.dartlang.org/apidocs/channels/stable/#dart-typed_data.Uint64List>
, Uint8ClampedList<https://api.dartlang.org/apidocs/channels/stable/#dart-typed_data.Uint8ClampedList>
, Uint8List<https://api.dartlang.org/apidocs/channels/stable/#dart-typed_data.Uint8List>
If a variable var is a typed vector, then any function f(var) will be
automatically executed parallelly using the SIMD unit in the CPU. This
would accelerate the execution significantly!
Dart language is open source, it would be easy to find out how it
implements the SIMD support.