61 lines
2.1 KiB
XML
61 lines
2.1 KiB
XML
|
<Namespace Name="Mono.Simd">
|
||
|
<Docs>
|
||
|
<summary>
|
||
|
Hardware accelerated SIMD-based primitives.
|
||
|
</summary>
|
||
|
<remarks>
|
||
|
<para>
|
||
|
Important: the Mono.Simd assembly is a work-in-progress API
|
||
|
and has not been finalized. We are publishing the assembly
|
||
|
and the documentation hoping to get input and feedback from
|
||
|
the community.
|
||
|
</para>
|
||
|
|
||
|
<para>
|
||
|
The Mono.Simd namespace provides a number of classes that are
|
||
|
hardware accelerated by mapping the classes and the actual
|
||
|
operations to native SIMD instructions on a processor.
|
||
|
</para>
|
||
|
|
||
|
<para>
|
||
|
When the Mono runtime's SIMD optimization are active the
|
||
|
operations on the structures defined in this namespace are
|
||
|
mapped to hardware operations which can improve the
|
||
|
performance of your graphics, multimedia or 3D operations
|
||
|
significantly.
|
||
|
</para>
|
||
|
|
||
|
<para>
|
||
|
Code that uses the types defined in the Mono.Simd assembly
|
||
|
will work even on systems that do not have hardware SIMD
|
||
|
operations, systems where Mono has not added support for the
|
||
|
native SIMD operations and even on the Microsoft.NET runtime
|
||
|
as it currently does not have support for hardware accelerated
|
||
|
SIMD operations.
|
||
|
</para>
|
||
|
|
||
|
<para>
|
||
|
You can control whether the runtime will map the operations to
|
||
|
SIMD primitives by using the -O command line option and
|
||
|
specifying -O=simd to enable or -O=-simd to disable.
|
||
|
</para>
|
||
|
|
||
|
<para>
|
||
|
The operations that are hardware accelerated are flagged with
|
||
|
the Acceleration attribute on each individual method. The
|
||
|
Mode property describes the minimum version of CPU
|
||
|
functionality required to use the operation. Software can
|
||
|
use this flag to determine if they want to use the operations
|
||
|
implemented in software or not.
|
||
|
</para>
|
||
|
|
||
|
<para>
|
||
|
Casting operations are also cheap, converting from one data
|
||
|
type to another have a very low cost. This is useful to move
|
||
|
information back and forth from floating point values to
|
||
|
integers.
|
||
|
</para>
|
||
|
</remarks>
|
||
|
</Docs>
|
||
|
</Namespace>
|