自動ニュース作成G
Intel、既存ソフトも再コンパイルで高速化できる「APX拡張」
https://pc.watch.impress.co.jp/docs/news/1519027.html
2023-07-26 19:47:14
>APXの仕組みは至極単純明快で、既存の汎用レジスタ(general-purpose registers:GPRs)を16から32(追加されたのはR16~R31)に倍増させる。これによりコンパイラが保持できる値を増やし、Intel 64ベースでコンパイルされたコードと比較してロードを10%、ストアを20%削減できる。
もうCISCってレベルじゃなくなってきてるな。コンパイラ屋さんが対応してくれるだろうから一般人は気にしなくて良いんだろうけど。更に複雑に。関連『Intel、Pコア/Eコア両対応の新拡張命令セット「AVX10」』
◇
・intelべーしっ君APX
・#0 すんません、ここがちょっとよく分からないんですが >CISCってレベルじゃなくなってきてるな。
・intel APXといえば、iAPX 432を思い出す老人会の一員。>IntelはPentium Proでこの問題を解消するために「CMOV」、「SET」命令を導入し< SET命令は使ったな。CMOVはよく覚えてないわ。 >APXではロード、ストア、比較、テスト命令に条件付きのフォームを追加< こういうのARMでもあったよね?
・日本語がわからんな。コンパイル=ソースコードをバイナリに変換する処理と思うんだけど、コンパイラが保持できる値を増やしたところで、動作が早くなるわけじゃない。(CPUが保持できる値を増やすならわかる) CPU内部のマイクロコードで翻訳することを言っているのかとも思ったが、タイトルの「再コンパイルで高速化」のイメージと異なる気がする
・#4ああ、「(最適化)コンパイラが保持できる(仮想レジスタの)値を増やす」って意味だと思う。確かにちょっとはしょった表現だな
・パイプラインで並列実行できるようになったあたりから手でアセンブラを書くのは無理ゲーになっていると思う。__asmで、Cのソースにアセンブラを埋め込んでいた時代が懐かしい。
・#6 あるコンパイラではCのパラメータがレジスタ渡しだったり、スタックに詰んで渡す方式だったりしたけど、リターンは AXレジスタのケースが多かったよな。問題はポインタ渡しをしたい時で、実行形式によってポインタの形式が異なる(x86)のは本当に面倒だった