タグ

SSEに関するmntoneのブックマーク (18)

  • 16 Vectorized arithmetic

    mntone
    mntone 2012/07/18
  • CMS(RFC.5652 & PKCS#7)対応 暗号/復号ユーティリティ

    都立工業高等専門学校(現、東京都立産業技術高等専門学校)を卒業、 機械工学が専攻だった癖に論理回路やオーディオ関係の技術者らしい。 趣味として、音楽関係のフリーソフト開発や、DTM・チップチューン活動をしたり、 オーケストラや吹奏楽団でオーボエを吹いてる人。 概要(Summary) ソフトについて 単一ファイルに対して、暗号・復号を行うソフトウェアです。 ソフトウェアは、暗号化ファイルの構造や、各種のアルゴリズムについて、 国際的な標準類(ITU, Fips, PKCS, JIS, RFC等)に準拠しており、 これらに準拠している他のソフトウェアと互換性があります。 暗号化ファイルは、暗号メッセージ構文(CMS:RFC.5652)に準拠しており、以下の特徴があります。 疑似乱数を用いる事により、同じパスワードでも毎回異なった暗号文が生成されます。 その為、例えば定時報告等、一定時間で同

  • コンパイラー最適化入門: 第1回 SIMD 命令とプロセッサーの関係 | iSUS

    この OS のシステム要件が求めるプロセッサーが、SIMD 命令を使用する最適化オプションに影響します。例えば Windows Vista Home Basic までをサポートすると想定した場合、800MHz 以上のプロセッサーが求められていますから、対象となるプロセッサーは一部の Pentium III(450MHz – 1.4Gseisei Hz)と Pentium 4(1.3GHz – 3.8GHz)以上となります。まあ、少しぐらい動作クロックが違っても問題はないのですが。 この2つのプロセッサーには、サポートする SIMD 命令セットに違いがあり(Pentium III – SSE、 Pentium 4 – SSE2)、コンパイラーは対象とするプロセッサーが実行できる命令セットを使用したバイナリーを生成しなければいけません。この場合、SSE2 を利用したバイナリーを生成すると、Pe

    コンパイラー最適化入門: 第1回 SIMD 命令とプロセッサーの関係 | iSUS
    mntone
    mntone 2011/12/12
    わかりやすい
  • 画像の拡大「Bicubic法」 - koujinz blog

    リンク ・画像の変換(目次ページ) 『拡大・縮小』関連 ・画像の縮小 ・画像の拡大「Nearest Neighbor法」 ・画像の拡大「Bilinear法」 ・画像の拡大「Bicubic法」 ・画像の拡大「Lanczos法」 ・画像の拡大-距離計算に関する考察 ・超解像 【バイキュービック法 (Bicubic 法)】 バイリニア法は隣接する4点から線形的に中間値を求めているだけなので、 エッジが立っている場所でのガタガタ感が否めません。 バイキュービック法は もう少し滑らかに中間値を求めてやればいいんじゃね? という発想からきているのだと思います。 そのためには隣接する点だけではなく、その先の点をも考慮する必要があります。 つまり、d6, d7 の値を決めるために バイリニア法 では s2, s3 の値を参照しました。 それよりも滑らかにしようと思うと、 s2, s3 に加え、s1, s4

    画像の拡大「Bicubic法」 - koujinz blog
  • インラインアセンブリ

    mntone
    mntone 2011/09/01
  • メモ/SSE2 - AviUtl オリジナルプラグイン公開サイト @ wiki

    mmintrin.h typedef union __declspec(intrin_type) _CRT_ALIGN(8) __m64 { unsigned __int64 m64_u64; float m64_f32[2]; __int8 m64_i8[8]; __int16 m64_i16[4]; __int32 m64_i32[2]; __int64 m64_i64; unsigned __int8 m64_u8[8]; unsigned __int16 m64_u16[4]; unsigned __int32 m64_u32[2]; } __m64; __m128

    メモ/SSE2 - AviUtl オリジナルプラグイン公開サイト @ wiki
  • MMX de Alpha Blending 2

    ・MMXで半透明(2) : アセンブラ 編 (99/5/18) 前回 C でα合成を試したら平均 8 回/秒 しか計算出来ませんでした。 ならばアセンブラで高速化しよう、という訳で今回は アセンブラを使ってα合成をしてみます。 さてアセンブラで合成の部分を素直に書けば下の様なソースになります。前回の ソースの VOID AlphaBlending() 関数を置き換えて下さい。WinMain() やプロシージャ等の関数は同じ物を使います(したがって今回は それらのソースは載せません)。 やっていること自体は C 版と全く同じなのですがメモリへのアクセスが かなり減りますので C よりは速くなることが予想できます (もっとも最近はキャッシュがあるのであまり変わらないような気もしますが)。 // α合成 アセンブラ版 // // コピー先 = コピー元1 * α + コピー元1 * (1-α)

  • はてなブログ | 無料ブログを作成しよう

    広島に行った話 生まれて初めて、ひとりで遠出をした。行ったのは広島だった。 「#Barbenheimer」(読み:バーベンハイマー)を覚えているだろうか。原子爆弾の父・オッペンハイマーを描いた映画『オッペンハイマー』と、実写映画『バービー』がアメリカで同日公開され、映画ファンたち…

    はてなブログ | 無料ブログを作成しよう
  • 声優の発話の音響特徴量分析及び確率モデルの作成

    Get a free logo with your purchase of SOFKEN.COM We have a 90%+ satisfaction rate from our customers

    声優の発話の音響特徴量分析及び確率モデルの作成
    mntone
    mntone 2011/09/01
  • advanced optimization MMX

    『8 / 16 / 32bitの整数をまとめて処理できる』というのは発表当時の雑誌に散々解説されていたのでみなさんご存知だと思います. #割にはあんまり流行ってないですけど 命令の説明のためにここだけの記号法ですが, 次のルールを使います. 8 / 16 / 32bit整数をB, W, Dで表します. それらを複数並べた場合は左のほうが上位bitとします. (例) [D1:D0]は上位D1下位D0の32bit整数が2つペアになったもの. m??は??bitメモリ, r32は32bit汎用レジスタを表します. 殆どのMMX命令は第1オペランド (dest) にはMMXレジスタのみ指定でき, 第2オペランド (src) にはMMXレジスタ / メモリを指定できます. シフト命令のみ第2オペランドに即値を使えます.

    mntone
    mntone 2011/09/01
  • MMX命令による画像処理

    8.1 はじめに 第8章では、いよいよMMX命令の使って画像処理を高速化する方法について説明したいと思います。 7.6節で述べたように、7.4節で説明したフェードアウトのプログラムと、7.5節で説明したフェードインのプログラムを高速化してみました。 いきなりプログラムの説明をすると大変なので、まずはMMXテクノロジとはどんな技術なのかという事から説明していきます。 既にMMXテクノロジについて理解している方は、8.2~8.5節は読み飛ばして構いません。 8.2 MMXテクノロジとは MMXテクノロジは、画像や音声などのマルチメディア関係の処理を高速化するために生まれた技術です。 加算や減算などの演算を一つずつ行うのではなく、一度に複数の値同士を加算したり減算したりする事で、高速に処理をする事ができます。 この考え方は、Pentium3から搭載されたSSE命令(ストリーミングSIMD拡張命令

    mntone
    mntone 2011/09/01
  • Matrix vector multiplication using SSE3

  • 命令の参照

    [このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 Blank topics are included as placeholders.] ここではこの命令によって組み込みを調べることができます。 次の表は組み込みが用意されている組み込みプラットフォームとそれに続く命令が一覧表示されます。 場合によっては複数の組み込みは単一の命令を生成して; たとえば命令の種類やサイズの引数を取る。 命令 組み込み X86 [X64] IPF

    命令の参照
    mntone
    mntone 2011/08/23
    インチリンシック命令書くのに必要。
  • Bilinear Pixel Interpolation using SSE

  • IA-32 SIMDの扉

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

    mntone
    mntone 2011/08/11
  • SIMD命令セットの記述方法

    SIMD命令を使用したプログラミングをする方法は、次のいずれかになります。 コンパイラのオプションを変更しSIMD命令セットを有効にし、記述はコンパイラに任せる イントリンシック命令を使用する インラインアセンブラを用いる 外部アセンブラでアセンブルしたオブジェクトファイルをリンクする 場合によりますが、下の項目ほどプログラミングが難しくなり、効果は高くなります。 コンパイラのオプションを変更しSIMD命令セットを有効にし、記述はコンパイラに任せる Visual C++の場合、プロジェクトのプロパティから[構成プロパティ]-[C/C++]-[コード生成]をツリーで選択し、[拡張命令セットを有効にする]オプションを変更することによってコンパイラが自動的にSSE命令セットを使用してコンパイルしてくれます。その際、あわせて[浮動小数点モデル]オプションを単精度浮動小数点をメインで使用するなら[

    mntone
    mntone 2011/08/11
  • CPUID命令を使用して、SSEに対応しているか調べるコード - ゲームとかプログラムとかパソコンとか

    2009/09/13 コードを少し変更 VC++のインラインアセンブラからCPUID命令を使用してSSEに対応しているか調べるコードを書きました。CPUID命令EAXレジスタに値を入れてCPUID命令を呼び出すと、各レジスタにCPUの情報が格納されます。 EAX=0 ベンダIDの取得EAX=1 プロセッサ情報とプロセッサの機能EAX=2 キャッシュとTLBディスクリプタ情報EAX=3 プロッセッサ・シリアル・ナンバEAX=80000000h サポートする最大拡張機能番号の取得EAX=80000001h 拡張プロセッサ情報とプロセッサの機能EAX=80000002h,80000003h,80000004h プロセッサブランド文字列EAX=80000006h 拡張L2キャッシュ情報EAX=80000008h 仮想アドレスと物理アドレスのサイズ 今回はSSEに対応しているか調べたいのでEAXには

    mntone
    mntone 2011/08/11
  • SSE.浮動小数点演算手動最適化は本当に効果的なのか - デー

    ちょっと試したので、結果をコピペ。 概要とたてまえ SSEは、x86のSIMD命令セットに含まれる浮動小数点演算の複数同時実行を行う命令セットです。単精度(float)で4つ、倍精度(double)で2つの演算を1命令で実行できるため、うまく使うと繰り返し同じ演算のパフォーマンスアップを期待できます。 Streaming SIMD Extensions - Wikipedia 画像処理や、確率の計算などでは浮動小数点数の計算を数百万回から回数とかいうレベルではなく3日間くらいの規模で行うことがあるので、 少しでも速くなると時間的にとてもうれしい! 計算をどこで妥協するかみたいな部分があるため速く計算を終わらせることでやれることの可能性が広がる! という思いがあります。 CUDAのほうが云々 CUDAは、NVIDIAのGPUが対応しているGPGPUの環境です。GPGPUというのは、グラフィッ

    SSE.浮動小数点演算手動最適化は本当に効果的なのか - デー
    mntone
    mntone 2011/08/11
  • 1