2021-01-01から1年間の記事一覧

SVE2のBGRP命令

news.mynavi.jpこの記事で、Scalable Vector Extension 2(SVE2)について語られています。出典は以下のページの右上の"download presentation"ボタンから得られます。connect.linaro.orgこのプレゼンの26ページ目(=一番上の記事のphoto 02)によると、SVE2…

8x8 bitboardへの対称な変換を全部やるのにAVX2を使う

符号なし64bit整数を8x8 bitboardとみなして、(1)横方向に鏡映 (2)縦方向に鏡映 (3)行列転置 という3つの処理をこの順番でやってもやらなくてもよいとしたとき、結果得られる最大8通りのbitboardのうち、整数としての値が最小のものを得たいという問題を考え…

magic bitboardのmagic numberをSMTソルバで求めようとした

pext命令を軸としてmagic bitboardについて振り返ってみます。計算速度が重要なソフトで、そのなかである固定されたマスク値でpext命令を頻繁に計算する必要があるがpext命令を使いたくないとします。具体的な問題設定としては、 マスク値で立っているビット…

pext 6回で8x8 bitboardを転置できる

前回の記事で、符号なし64bit整数を8x8 bitboardとみなして転置する方法として、基本RISC命令のみでやる方法と、AVX2のmovemask命令などを使う方法があるという話について書きました。今回はそれの続きで、ハッカーのたのしみ第7章7.5を改良した方法も加えて…

movemaskでbitboardを転置するやつ

最近broadcast+sllv+movmskでbitmatrixの転置ができることを知ってスゲーになりました— そすうぽよ(すごい)(早寝早起き) (@_primenumber) 2021年10月1日 このツイートを見かけたんですがやり方が見当たらなくて一瞬考えてしまったたので、備忘録として以下に…

サンプル音声で誰か当てるやつ

ウマ娘のサンプル音声と声優のサンプル音声が与えられたとき、どのウマ娘がどの声優なのか機械学習で当てられるのかっていうやつを思い出したので、一瞬でちょっとだけやってみました。 Methods いい感じの解くやつを探す ディープラーニングのなんかいい感…

YavalathのBitboard

github.comYavalathというボードゲームの2人向けルールのAIを、Bitboardを多用して実装しました。思考部分はMCTSで実装してあり、コマンドラインで遊べるようになっています。 盤面の表現 Yavalathは1辺5マスの六角形の盤面を使います。2人で交互に石を置い…

ハッカーのたのしみ第7章7.5の解説とちょっとした改善

algorithm-study/hackers_delight_7_5 at master · eukaryo/algorithm-study · GitHub ハッカーのたのしみ第7章7.5では、「ワードの一般的順列演算」と呼ばれている演算の実装方法について論じられています。「ワードの一般的順列演算」は、愚直に書くと以下…