この記事は、インテルのウェブサイトで公開されている「Accelerate PyTorch* Inference with torch.compile on Windows* CPU」の日本語参考訳です。原文は更新される可能性があります。原文と翻訳文の内容が異なる場合は原文を優先してください。
インテルと Meta の協力により、PyTorch 2.5 (英語) において Windows CPU 上で torch.compile 機能がサポートされました。この機能強化は PyTorch のコード実行をデフォルトの eager モードよりも高速化し、パフォーマンスを大幅に向上させることを目的としています。
Windows CPU 上で torch.compile を使用する
Windows CPU 上で torch.compile を利用するには、C++ 開発環境が必要です。必要な環境をセットアップするための包括的なガイドが用意されています。チュートリアル 「Windows CPU 上で TorchInductor を使用する方法」 (英語) を参照してください。環境のインストールが完了したら、以下の簡単なサンプルを実行して、正しくセットアップされていることを確認してください。
(pytorch_2.5) D:\xuhan\build_pytorch>type mini_case.py import torch def foo(x, y): a = torch.sin(x) b = torch.cos(y) return a + b opt_foo1 = torch.compile(foo) print(opt_foo1(torch.randn(10, 10), torch.randn(10, 10))) (pytorch_2.5) D:\xuhan\build_pytorch>python mini_case.py tensor([[ 1.9812, -0.2463, -0.0087, 0.3254, 1.8775, -0.9243, 0.9942, 1.7817, 0.2984, 0.0758], [ 0.8973, -0.1397, 0.7298, 1.4530, 0.9452, 0.1929, 1.2594, -0.2231, 1.4836, -0.4684], [ 1.0682, 1.8216, 0.5263, 0.1197, -0.1380, 0.0245, -0.5553, -0.5178, 0.3169, -0.9332], [ 1.4115, 1.0956, 0.4083, 0.4683, 0.2366, 1.5851, -0.0679, 0.6405, -0.3479, 1.9406], [ 1.6804, -0.0512, -0.0929, 1.1394, -0.0552, 0.9306, 1.8272, 1.6940, 1.6041, -0.3670], [ 1.6425, 0.0930, 0.0385, -1.3875, -0.2351, 1.3414, -1.4208, 1.2336, 0.0098, 0.7412], [ 1.9461, 1.7850, 0.5771, -1.2778, 0.3964, -1.3073, 0.8085, 0.4738, 0.7596, 1.0792], [ 0.5872, -0.8935, -0.0047, 0.8921, 1.5168, 0.4271, -1.3082, -0.1474, 0.3418, -0.0677], [ 0.3057, 0.2031, 0.6457, 0.9431, 0.0145, 0.5779, 0.7415, 0.8415, 1.1008, 0.1977], [ 0.5103, -0.1149, 1.3592, 0.2531, 1.5663, 0.2729, 1.7606, 0.4289, -0.3515, 1.4577]]) (pytorch_2.5) D:\xuhan\build_pytorch>
追加コンパイラーによるパフォーマンス向上
Windows CPU 上でパフォーマンスを向上するため、Microsoft Visual C++ に加え、LLVM コンパイラー (英語) とインテル® oneAPI DPC++/C++ コンパイラー (英語) をサポートしました。詳細については、詳しい手順とパフォーマンス・データを含む記事「インテル® oneAPI DPC++/C++ コンパイラーが Windows 上の CPU デバイスで PyTorch Inductor のパフォーマンスを向上」を参照してください。
謝辞
この機能強化は、Xu Han、Jiong Gong、Bin Bao、Jason Ansel、Chuanqi Wang、Henry Tsang、Xiao Wei、Weizhuo Zhang、および Zhaoqiong Zheng の懸命な努力と献身により実現しました。
この強力な機能を PyTorch コミュニティーに提供できることを嬉しく思います。皆さんが Windows CPU 上で torch.compile を活用して革新的な方法で PyTorch プロジェクトを高速化するのを楽しみにしています。