Visual StudioによるC++パフォーマンスの向上

1474 ワード

Build 2012開発者大会で、Jim RadiganとDon McCradyがスピーチをしました.改善されたVisual Studio 2012(VS 2012)コンパイラがC++プログラム開発者にどのようなメリットをもたらすかについて議論した.Radiganはまず最初のPentiumプロセッサの登場からコンピューティング能力の向上の歴史を簡単に概説し、「すべてはパフォーマンスのため:Visual C++2012を使用してハードウェアの利用率を最大化する」という話題を引き出した.
初代Pentiumプロセッサには310万個のトランジスタがあり、現在の世代Ivy Bridgeプロセッサには14億個のトランジスタがある.McCradyが後述するように、C++AMPは、開発者がCPUおよびCPUコア(CPU Dies)に統合されたGPU(独立した拡張カードを含まないGPU)を含む言語で使用することを可能にする.
一般的なコードと比較して、C++AMPをターゲットとするコードは、最適なパフォーマンスを提供することが多い.次に、Radiganは、VS 2012における自動ベクトル化と自動並列化の最適化について言及し、既存のC++コードを再コンパイルするだけで直接利益を得ることが多いことを意味する.これにより、VS 2012のオプティマイザのサイズが以前のバージョンの2倍になります.
開発者がコンパイラがコードをチェックして加速しようとすると,コードクリップにタグを付けることができる.次のコンパイラ命令

#pragma loop(hint_parallel(4))

開発者は、コンパイラに手がかりを提供することができます.コンパイラ命令を含むループは、複数のコアに拡張されるべきです(コードフラグメントには4つのコアがあります).もちろん、コンパイラは包括的な分析を行うため、タグ付けされたコードブロックが並列化に適していない場合、コンパイラは最適化されません.
Radiganは、簡単にVS 2012でソースコードを再コンパイルするだけで16倍のパフォーマンス向上をもたらす光線追跡の実証を通じて実証した.Radigan氏は、VS 2012はコンパイラの性能を改善したが、より迅速なコードを自動的に生成できる「妙薬」はないと強調した.Windows 8、SQL Server、OfficeはC++アプリケーションなので、コンパイラチームは革新を求め続けます.
Radigan氏は、現在利用可能なものはないが、AMPにオリジナルのC#サポートを追加したいと指摘した.(現在、C#開発者はP/InvokeでAMPを使用することができる.)最後に、C++AMP仕様はオープンスタンダードであるが、現在Appleのプラットフォーム(iOSまたはMac OS X)では相応の実現はないが、理論的には可能である.
英文原文住所:http://www.infoq.com/news/2012/11/vs2012_CPP
蔵秀濤の本文に対する審査に感謝します.
InfoQ中国語サイトへの投稿または翻訳に参加する場合は、[email protected].新浪微博(@InfoQ)やテンセント微博(@InfoQ)を通じて私たちに注目し、私たちの編集者や他の読者の友达と交流することを歓迎します.