タグ

Algorithmとcpuに関するrydotのブックマーク (2)

  • PopCntの速度再び2011 - 小宮日記

    3年ほど前、popcntの速度を調べたことがありますが http://d.hatena.ne.jp/mkomiya/20070905/p1 bitを数える http://vivio.blog.shinobi.jp/Entry/137/ ふと思い出したので、またちょっと調べてみました。 以前は、ビット数少ないとアセンブラ速いけど 表引きC言語は安定してるよね 的な幕引きでしたが、 アセンブラでマジックで計算するコードをサイボウズラボの人が書いていたので、 http://developer.cybozu.co.jp/takesako/2006/11/binary_hacks.html それを加えてみます。 あと、団子の人のSSEコードもあったのでそれも追加。 LS3600さんが、SSE4.2でPopCntの使い方も紹介されてましたが、 今使ってるマシン(core2duo E7500)がSSE4

    PopCntの速度再び2011 - 小宮日記
  • ビットを数える・探すアルゴリズム

    作成日:2004.05.04 修正日:2012.09.01 このページは 2003年の9/11、9/28 の日記をまとめて作成。 はじめに PowerPC 系や Alpha などには population count と呼ばれるレジスタ中の立っているビット数を数える命令が実装されている。 集合演算を行うライブラリを実装したい場合などに重宝しそうな命令である。 職場でこの population count 命令について話をしているうちにビットカウント操作をハードウェアで実装するのは得なのか?という点が議論になった。 CPU の設計をできるだけシンプルにするためには、複雑で使用頻度の低い命令は極力減らした方がよい。 例えば SPARC は命令セット中にビットカウント演算があるが、CPU 内には実装しないという方針をとっている(population 命令を実行すると不正命令例外が発生し、それを

  • 1