HN 日本語サマリー

← 一覧へ戻る
プログラミング

Show HN: RustによるSIMD Viterbiデコーダー

Show HN: SIMD Viterbi Decoder in Rust (github.com)

51 pointsby brian-armstrong9 コメント

要約

投稿者は2016年にC言語で書いたライブラリlibcorrectをRustで再実装しました。今回はstd::simdを活用し、実行時に利用可能な命令セットに応じてデコードをディスパッチする、テンプレート化された汎用Viterbiデコーダーを開発しました。また、指定されたレートとオーダーに対して最適な畳み込み符号を見つけるツールも作成しました。

全文翻訳

2016年にC言語でlibcorrectを書き、Rustで再挑戦したいと思いました。単なる直接的な変換ではなく、Rustのstd::simdが私にとって機能するように、さらに深く掘り下げました。その結果、畳み込み符号用のテンプレート化された汎用Viterbiデコーダーができ、実行時に利用可能な命令セットに応じてデコードをディスパッチします。レートとオーダーが小さい場合、デコード全体がレジスタ内に収まります。より大きな符号はメモリを介して動作しますが、いくつかのアクセラレーション構造を利用します。 また、指定されたレートとオーダーに対して最適な(最大d_free)畳み込み符号を見つけるツールを構築するのに時間を費やしました。もちろん、今日ではより優れたメカニズムが利用可能ですが、このプロセスで学んだことについて喜んでお話しします。