Author Archive

実行した命令数をカウントする

一週間で三回ぐらい聞かれたので知っている範囲で書いておきます。 パフォーマンスカウンタの値をとる 全命令をカウントするINST_RETIREDがありますが、もう少し詳細な値も取れます。 http://www.intel. […]

Processor Trace を使ってデバッグ時に詳細なトレースを取得する

Broadwell 世代から、いくつかのCPUではProcessor Traceと呼ばれる機能が付いています。簡単に使いかたを説明します。 Intel Processor Trace それなりの規模のCPUにはプロセッサ […]

TSX は cmpxchg のかわりに使えるか?

ARMのldrexとstrexのコードを見て、なんとなくx86のcmpxchgより読みやすい気がしたので、x86にもll/sc相当が欲しいなと思ったのですが、よく考えたら今のx86にはTMがあったのを思い出しました。 P […]

AMD GCN isa と NVIDA SASS でのアドレス演算のチューニング

ちょっとしたきっかけがあって、AMD用のGPUとNVIDIA用のGPU両方で高速化作業を行いました。 そのときに得られた知見を書いておきます。 AMD GCN isa と NVIDIA SASS GPUでプログラミングを […]

OpenCL2.0 の機能を Broadwell で試す (SVM編)

Broadwell、いわゆる 5th Generation Intel(R) Core(TM) Processor がリリースされてから大分経ちましたが、皆さん、Broadwellは使っていますか? Broadwell […]

x86/x64最適化勉強会7 で発表しました

3/15 に行われた、x86/x64最適化勉強会7 に行ってきました。 当日の様子は、主催の光成さんが書かれた、x86/x64最適化勉強会7レポート や @t_teruya さんによる togetter のまとめ などが […]

Denver の最適化機能を調べる

NVIDIA 社の開発した Denver という 64bit ARM CPU は、ARM 機械語を最適化する機能を持っています。これをいくらか見てみようと思います コード https://bitbucket.org/fi […]

動き予測(おまけ)

さすがに20倍にはならないので、と書きましたが、よく考えたら、最近のx86 では サイクルあたりで 16byte の sad が一個取れるので、20倍ぐらい出そうな気がしたので試してみました。 https://bitbu […]

GPU の動き予測ハードウェアをOpenCLから使う

最近のGPUは、動画エンコーダを実装しているものが多いです。 Intel社のGPUは、この動画エンコーダで使われる、ブロック単位での動き予測ハードウェアを、OpenCLから使うことができます。 公式の解説 : https […]

(小ネタ)比較してインクリメント/デクリメント

SSE, AVXの比較結果は真の場合、全ビットが立ちますが、これは -1 とも解釈できるので、 [crayon-599bbd07a9af1021579471/] は、それぞれ、 [crayon-599bbd07a9af8 […]