2

たとえば、64ビット変数があり、その中に2つの32ビットデータ項目を格納する場合、おそらくSIMD処理の目的で、これら2つのデータ項目の論理結合を説明する名前はありますか?

私の同僚は「ハイブリッドカップリング」を提案していますが、これは広く使用されている用語ですか?

明確にするために:私たちは特定の実装よりも高いレベルの概念を求めています。たとえば、Cのような言語では、次の2つの構造体があります。

struct CoupledData
{
    uint64 x_and_y; // x is stored in the top 4 bytes, y in the bottom 4
}

struct UncoupledData
{
    uint32 x;
    uint32 y;
}

そうする理由に関係なく、UncoupledDataには存在しないCoupledDataのxデータメンバーとyデータメンバーの間に暗黙の結合があります。xとyの間のこの結合を説明する用語はありますか?

4

2 に答える 2

5

私はいつもそれを「パッキング」と呼んでいます。R、G、B、およびアルファバイトをlongにパックします。

pixel=(a<<24)+(r<<16)+(g<<8)+b;

特にSIMD命令のリファレンスは次のとおりです(MMX / SSEから):

ADDPS:パックされた単精度FP値を追加します

CMPccPS:パックされた単精度FP比較

于 2009-07-29T14:38:24.627 に答える
0

cの世界では、それは組合と呼ばれています

「ユニオン宣言」は、変数値のセットと、オプションでユニオンに名前を付けるタグを指定します。変数値はユニオンの「メンバー」と呼ばれ、さまざまなタイプを持つことができます。ユニオンは他の言語の「バリアントレコード」に似ています

共用体型の変数は、その型で定義された値の1つを格納します。同じ規則が構造体と共用体の宣言を管理します。ユニオンはビットフィールドを持つこともできます。

彼の例では、次の擬似コードがあります。

ユニオン32_64{

64_bit_specifier sixty_four;
32_bit_specifier thirty_two;

}

于 2009-07-29T14:40:21.350 に答える