タグ

simdに関するxiangzeのブックマーク (5)

  • 「ZigはCよりも速いです。」をVector/SIMD最適化で検証する

    「パフォーマンスについて言えば、ZigはCよりも速いです。」 この一文は Zig 言語の公式サイトの詳細な概要に実際に書いてある文章です。 その理由としていくつか挙げた上で最後にちらっと「ZigSIMD ベクトル型を直接公開しており、移植性の高いベクトル化コードを簡単に記述することができます。」と書いてあります。今回の記事では画像処理っぽいお題を使って実際に SIMD 最適化される様子を検証してみます。 ベンチマーク環境 OS: Ubuntu20.04 on WSL2 on Windows11 CPU: AMD Ryzen 9 5900X 12-Core Processor お題 一般的な画像データ構造の表現である、幅×高さ×4(RGBA)の長さを持つ8bit整数の配列を受け取り、in-placeでRGBの値を 10 加算して明るくするという関数を考えます。Aの値は元のままとします。

    「ZigはCよりも速いです。」をVector/SIMD最適化で検証する
  • 転置インデックスの圧縮技法

    転置インデックスは、検索エンジンの実装において、中心的な役割を果たすデータ構造である。 転置インデックスのデータ構造とアルゴリズムは、クエリ処理アルゴリズムとともに、検索エンジンの性能に直結する。とくに大規模な検索エンジンにおいては、キャッシュ効率を高めてクエリ処理を高速化するために、転置インデックスの圧縮は必要不可欠となっている。 この記事では、転置インデックス、とくにポスティングリストの圧縮について、近年の手法を簡単にまとめる。 目次 転置インデックスの基 転置インデックスのデータ構造と特性 転置インデックスのアクセスパターン 近年のインデックス圧縮技法 Variable-Byte Family VByte Varint-GB Varint-G8IU Masked-VByte Stream-VByte Opt-VByte Simple Family Simple9 Simple16

    転置インデックスの圧縮技法
  • 謎のJuliaパッケージSIMD.jlを試した - Qiita

    いつものようにJuliaの情報をウォッチしていたら偶然にもSIMD.jlなるパッケージを発見しました。名前からしてヤバそうなスメルを感じるわけですが、試してみたら非常にヤバイ(いい意味)感じでしたので、取り急ぎご紹介します。 SIMDを使ったベクトル化は1命令で複数の演算をする並列化計算の手法です。最適化のよく効く言語なら、SIMDを使ったベクトル化はコンパイラが自動的にやってくれることもあるのですが、複雑な計算の場合はうまく行かず、結局手で書くことも多いです。CやC++では、SIMD intrinsicsなるものがあり、計算をベクトル化して書くことができるわけですが、これ ( https://software.intel.com/sites/landingpage/IntrinsicsGuide/ ) を見ながらせっせと使える命令を調べて型を合わせることになり、非常に面倒です。それで、J

    謎のJuliaパッケージSIMD.jlを試した - Qiita
  • SSEとAVXで高次元ベクトルの内積計算を高速化してみた | さかな前線

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

  • 動画系のSIMD最適化

    茂木 和洋 @ まるも製作所 まるも製作所の中の人をしてます 就職活動の一環として大学4年の夏に MPEG-2デコーダを作っていたら某企業に 拾ってもらえました 就職先の上司の縁で、通信系の研究所に飛 ばされて、H.264/AVCのエンコーダを 作ったりしてました 現在はファブレスLSIメーカに転職してオ リジナルのCODECを作ってたりします 動画CODECのプログラム的特徴 SIMDとは x86/x64のSIMD SIMDの使い方 SIMDに向く処理/向かない処理 動画CODECでのSIMD活用例 SIMDコードTips 4x4/8x8/16x16のブロック単位処理が主流 画素毎に独立に同じ処理を行うことが多い 個々の処理はそれほど重くないが、処理対 象が多い 8bit or 16bit の整数演算がほぼ全て 4x4/8x8/16x16のブロック単位処理

    xiangze
    xiangze 2011/11/29
  • 1