タグ

CPUとsseに関するyassのブックマーク (5)

  • ハミング距離の計算はホントに速いのか?

    これは@sakanazensen君が主催する『Computer Vision Advent Calendar 2013』の12/8の記事です。今年はあまり活発でないようなので、小ネタですが参戦しました。 はじめに 昨今のコンピュータビジョン・パターン認識分野で特徴ベクトルのバイナリベースの記述法が流行っています。その利点の一つとして、特徴ベクトル間の距離としてコンピュータにとって計算が容易な「ハミング距離」が使える、というものがあります。これはXOR演算と PopCount演算(いくつのビットが1かをカウントする演算)で構成されており、特に近年のCPUにはまず搭載されているベクトル計算命令セットの一つ「SSE4.2」の専用命令「POPCNT」が高速演算の根拠としてよく引き合いに出されます。二つともかなりプリミティブな命令ですから確かに高速に計算できそうな感じはします。しかしながら、例えばL

    ハミング距離の計算はホントに速いのか?
    yass
    yass 2013/12/09
    " 予想に反して、L1距離が最も高速という結果になりました。次点で64bitベースのハミング距離でした。意外と有意な差があります。"
  • 組み込み関数(intrinsic)によるSIMD入門

    6. 目標目標 OpenCVによりも高速なプログラムを簡OpenCVによりも高速なプログラムを簡 単につくれる書き方を覚えよう単 くれる書き方を覚えよう 出来るようになること ・高速コピー src.copyTo(dest);高速コピ src.copyTo(dest); ・高速な加減乗算 dest = src1 + src2; ・高速型変換 src.convert(dest,CV_16U); ・高速BGR2RGB cvtColor(src,dest,CV_BGR2RGB); ・高速BGR2Gray cvtColor(src,dest,CV_BGR2Gray); ※出来ないこと 整数演算だけ 浮動小数点の命令は使わない 比較演算は使整数演算だけ,浮動小数点の命令は使わない,比較演算は使 わない,水平演算は使わない,AVXは含まない(SSE4.1まで) 7. 目的目的 を使えば 化は難しくないよ

    組み込み関数(intrinsic)によるSIMD入門
  • SSEとAVXで高次元ベクトルの内積計算を高速化してみた | さかな前線

    世界最速のお魚と言えばカジキ類で,泳ぐ速度は時速100km/hを超えるとか.55ノット程になるのでこれはMk-48魚雷にも匹敵するほどです. 一方ちょっとチートな高速お魚としては,お馴染みトビウオが飛行中に最大70km/hほどに達するとか. 今日はそんな若干チートな高速化のお話(?)ということで,SSE組み込み命令について. SSEやAVXといえばお馴染みSIMD命令で,それをプログラムから構造体と関数の形式で高移殖に記述する方法がSIMD組み込み関数(SIMD Intrinsic)なわけですが,これを使ってごく典型的なベクトルの内積計算を高速化してみました. ベクトルの内積の高速化と言えば星の数ほどもされてる話なわけで,いまさら魚の情報なんか役に立つ気は全くしないのですが,純粋に自分でやらないとわかんない>< ということで, とにかく書いてみよう 効果の程はいかに? を調べてみたくて,や

    yass
    yass 2013/08/13
    " SSEやAVXといえばお馴染みSIMD命令 / これを使ってごく典型的なベクトルの内積計算を高速化 / 最大で10倍のスループットというのは驚き / 8192次元,データ量にして8192*sizeof(float)*2=64KBに達すると,速度差がなくなってますね"
  • ななめ45°から見たJavaOne

    2. 自己紹介 すえなが やすまさ  末永 恭正(@YaSuenag)  NTT OSSセンタ勤務 ◦ Javaの障害解析、Q&A対応  合言葉は「Javaいい子だから!」  hs_errログやコアの解析  Javaとlibc、Linuxカーネルの間を行ったり来たり… ◦ たま~にOpenJDKのパッチ書いてます  根っからのサンデープログラマー ◦ Object Pascal (Delphi) 大好き ◦ CとJavaも好き ◦ アセンブラも結構好き  JavaOne歴:2年(2010 & 2011) 3. JavaOneで感じたこと  求められるスキルの2極化 (EE vs SE) ◦ EE  とりあえず「クラウド」  とにかく「ポータビリティ」!  EoD 対 ◦ SE 極  とりあえず「並列化」  マルチリンガル?なVMの実現  VMの作りや動きを意識

    ななめ45°から見たJavaOne
  • SSE4.2 の crc32c 命令の呼び出し

    SSE4.2 に追加された crc32c 用の機械語命令を使うのに必要そうな機能をメモ書き。 ちなみに、SSE4.2 対応の CPU を持ってないので、未検証の項目多い。 SSE4.2対応のCPU Intel系はNehalemマイクロアーキテクチャ以降 AMD系はBulldozerマイクロアーキテクチャ以降 Wikipedia によるとNehalemマイクロアーキテクチャは「 主に2008年〜2011年ごろに発売された。」と書いてあるので、最近のデスクトップ用のCPUならば大丈夫? SSE4.2対応のCPUかどうかのチェック (2012-11-03 大幅書き換え) 当然だが、SSE4.2 に対応してないCPUでは crc32c 機械語命令は使えないので、事前に SSE4.2 に対応しているかどうかをチェックする必要がある。 以下の関数 sse4_2_is_supported() を呼び出し

  • 1