2023-09-01から1ヶ月間の記事一覧
clangは-O1以上の最適化オプションをつけると、以下のコード(単純に考えるとΘ(n)命令必要そう)からループを取り除き、Θ(1)命令のコードに最適化します。 uint64_t sum( uint64_t n ) { uint64_t ret = 0; for( uint64_t i = 0; i < n; ++i ) { ret += i; }…
Yosysというオープンソースの論理合成ツール(レジスタ転送レベルからゲートレベルに変換する一種のコンパイラ)があるので使ってみました。 github.com インストール 公式のREADMEとだいたい同じです。Makefileを書き換えてインストール場所を変更すれば、…
前回(AVX-512の機能を使ったlogf(x)の実装(その1) - よーる)の記事で、AVX-512でベクトル実行することを前提としたlogfの高速実装を作りました。 速度を重視しつつもできる限り精度に気を付けた結果、ほとんどの入力に対して誤差を1.5ULP未満とできまし…