🚄

.NET Native AOT で Hardware Intrinsics を使用する

2023/12/12に公開

Hardware Intrinsics を使用する

AtCoder で Native AOT の方に提出したらきちんと動作しなかったので調査したところ、Native AOT で Hardware Intrinsics を使用するには設定が必要なようでした。

.NET 8 以降

csproj に

<PropertyGroup>
  <IlcInstructionSet>native</IlcInstructionSet>
</PropertyGroup>

と設定する必要があります。

.NET 7 以前

native は使えないので、使用する機能を csproj に列挙します。

たとえば x86 では下記のようにします。

<PropertyGroup>
  <IlcInstructionSet>avx2,bmi2,fma,pclmul,popcnt,aes</IlcInstructionSet>
</PropertyGroup>

参考文献

公式ドキュメント

GitHubで編集を提案

Discussion