問題タブ [system.numerics]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
740 参照

c# - C# での SIMD 文字列から unsigned int への解析のパフォーマンス向上

次のように、.NET で利用可能な SIMD 組み込み関数を使用して、長さ <= 8 の符号なし整数文字列を解析するメソッドを実装しました。

悲しいことに、ベースラインと比較するとuint.Parse()、次のようなやや印象に残らない結果が得られます。

方法 平均 エラー 標準偏差
ベースライン 15.157ns 0.0325ns 0.0304ns
ParseSimd 3.269ns 0.0115ns 0.0102ns

上記のコードを改善するには、どのような方法がありますか? 私が特に関心を持っている分野は次のとおりです。

  • SIMD レジスタのビット シフトが次のような計算で発生する方法text.Length
  • ~~ s のMultiplyAddAdjacentベクトルを含むを使用した UTF-16 データのアンパックと~~01
  • を使用して要素を抽出する方法GetElement()- おそらくToScalar()どこかで発生する可能性のある呼び出しがありますか?