OpenBLASの新しいバージョンで対応されていると思うが、タイミング的に未対応の場合や、理由があって古いバージョンを使う場合もある。
自動判別に失敗するだけなので、
make TARGET=ターゲット名
で作ればよいのだが、TargetList.txtを見てもやたらと古い名前が並んでいて、そこにいきなりSAPPHIRERAPIDSみたいなハイエンドのが出てきて間がない。
Intel x86の場合、自動判別をやっているcpuid_x86.cを見ると細かく分岐しているが、要は、
| AMX | AVX-512 | AVX2 | AVX | bfloat16 | ターゲット名 |
|---|---|---|---|---|---|
| ✓ | (✓) | (✓) | (✓) | ✓ | SAPPHIRERAPIDS |
| ✓ | (✓) | (✓) | ✓ | COOPERLAKE | |
| ✓ | (✓) | (✓) | SKYLAKEX | ||
| ✓ | (✓) | HASWELL | |||
| ✓ | SANDYBRIDGE | ||||
| NEHALEM |
こんな感じ。(コンパイル環境ではなく実行環境が)最近の普通のPCならAVX2どまりなので、
make TARGET=HASWELL
でよさそう。いまさらHASWELLとか