タグ

simdに関するhts1004のブックマーク (4)

  • introdunction to SIMD programming - primitive: blog

    Unite 2015 Tokyo の講演で詳細を話せなかったのが心残りだったので、大量のオブジェクトの更新処理についてこの場で書いてみます。 主に C++ で、簡単なパーティクルエンジンを作り、それを SIMD を用いて高速化する手順を解説します。 話を簡単にするため、以下の前提を設けます。 ・x86 環境のみ考慮 ・パーティクルは位置と速度のみを保持 ・パーティクル同士の相互衝突は総当たりで計算 総当たりなので超遅いですが、実装は容易で SIMD による恩恵を受けやすく、題材として手頃です。 この記事の中で引用されているソースの元は こちら、ビルド結果 (上のスクリーンショットのデモプログラム) は こちら になります。 相互衝突するパーティクルを実装する場合、お互いの距離を計算し、当たっていたらめり込み具合に応じて押し返す、というのがよくある実装だと思います。まずはそれをストレートに

    introdunction to SIMD programming - primitive: blog
  • SIMD演算対応でWindows 8アプリの処理速度があがる? (1/2)

    現在のほとんどのCPUには、「SIMD演算」(Single Instruction Multiple Data)機能があり、複数のデータに対して同時に演算できる。SIMDでは、3次元の座標(X、Y、Z)を同時に演算したり、同じ演算を繰り返すことが多いメディア処理などに利用されている。 今回はWindows 8で導入される、新しいSIMD演算の使い方について解説しよう。 CPUによるSIMDの違いを 「DirectXMath」で吸収 WindowsでのSIMD演算のサポートには、大きく2段階ある。ひとつはOSがCPUを判別して、SIMD用レジスタの管理や命令の違いなどを把握する最低限の対応だ。もうひとつは、Windowsが提供するAPIやライブラリ内部で、SIMD演算を使う方法である。改良されたCPUアーキテクチャーが登場すると、大抵の場合SIMD演算機構が強化されるものだが、その違いをOS

    SIMD演算対応でWindows 8アプリの処理速度があがる? (1/2)
  • IA-32 SIMDの扉

    SIMD命令およびアセンブラの基礎 SIMDとは 用語集 開発環境 アセンブラの基礎知識 x87 FPU命令を使用したプログラミング CPUの識別 メモリアドレスのアライメント ラップアラウンド算術と飽和算術 SIMD命令セットの分類と歴史 SIMD命令セットの記述方法 SIMD命令セットの概要 MMX命令セットの概要 SSE命令セットの概要 SSE2命令セットの概要 SSE3命令セットの概要 SSE4命令セットの概要 命令リファレンス データ転送命令 算術命令 比較命令 論理演算命令 シフト命令 シャッフル命令 パックおよびアンパック命令 変換命令 挿入および抽出命令 ブレンド命令 丸め命令 キャッシュ制御命令 その他の命令 プログラミング例 画像処理 音声信号処理 参考資料 参考資料 トップSIMDの扉

  • IA-32 SIMDの扉

    SIMD命令およびアセンブラの基礎 SIMDとは 用語集 開発環境 アセンブラの基礎知識 x87 FPU命令を使用したプログラミング CPUの識別 メモリアドレスのアライメント ラップアラウンド算術と飽和算術 SIMD命令セットの分類と歴史 SIMD命令セットの記述方法 SIMD命令セットの概要 MMX命令セットの概要 SSE命令セットの概要 SSE2命令セットの概要 SSE3命令セットの概要 SSE4命令セットの概要 命令リファレンス データ転送命令 算術命令 比較命令 論理演算命令 シフト命令 シャッフル命令 パックおよびアンパック命令 変換命令 挿入および抽出命令 ブレンド命令 丸め命令 キャッシュ制御命令 その他の命令 プログラミング例 画像処理 音声信号処理 参考資料 参考資料 トップSIMDの扉

  • 1