__m256 |
辞書:電算用語の基礎知識 プログラミング仕様編 (PTPROGS) |
読み:アンダースコア-アンダースコア-エムにひゃくごじゅうろく |
外語:__m256 |
品詞:名詞 |
x86プロセッサー用のC/C++で、Intel AVXを扱うための独自のデータ型(変数型)。関連して__m256iと__m256dが存在する。
|
概要 |
Intel AVXで使うYMMレジスターは、256ビット長のSIMD演算装置用レジスターである。これは従来のSSEの128ビット長XMMレジスターの拡張である。
通常のintやlongなどと性質の異なるものであり、Intel AVXで使われるレジスター幅の変数を定義するため、このような独自の型が用意された。
またこのデータ型を使用した場合、コンパイラーは自動的にアラインメントを32ビット境界に合わせる。
特徴 |
定義 |
Microsoft Visual Studio 2010の場合、immintrin.hに、次のように定義がある。
typedef union __declspec(intrin_type) _CRT_ALIGN(32) __m256 { float m256_f32[8]; } __m256; typedef struct __declspec(intrin_type) _CRT_ALIGN(32) { double m256d_f64[4]; } __m256d; typedef union __declspec(intrin_type) _CRT_ALIGN(32) __m256i { __int8 m256i_i8[32]; __int16 m256i_i16[16]; __int32 m256i_i32[8]; __int64 m256i_i64[4]; unsigned __int8 m256i_u8[32]; unsigned __int16 m256i_u16[16]; unsigned __int32 m256i_u32[8]; unsigned __int64 m256i_u64[4]; } __m256i;
Cの標準機能のみで定義することができないため、Visual C/C++の独自拡張機能を用いて定義されているが、その実体はどうやらunionのようである。
FreeBSD 8.0現在、定義がないため使用できない。
利用方法 |
__m256は、関数の戻り値やパラメーターとして利用できるが、他の一般的な算術式と共に使うことはできない。
処理系の実装に依存するが、この変数型を扱うための関数が用意されており、これを通してIntel AVXを使うことになる。
結果として、__m256データ型は8つの32ビット浮動小数点数、__m256dデータ型は4つの64ビット浮動小数点数、__m256iデータ型は32個の8ビット整数値、16個の16ビット整数値、8個の32ビット整数値、または4個の64ビット整数値を保持することができる。
リンク |
通信用語の基礎知識検索システム WDIC Explorer Ver 7.04a (27-May-2022) Search System : Copyright © Mirai corporation Dictionary : Copyright © WDIC Creators club |