PyTorchバージョンとNVIDIA GPU Compute Capability Level サポート

PyTorchバージョンとNVIDIA GPU Compute Capability Level サポート
Photo by Christian Wiediger / Unsplash

古いPyTorchコード資産を持っている会社は、昔のコードが最新のPyTorchで動かない!最新のGPUで動かない!ということに遭遇することが多いのでしょうか。
今回は、PyTorchバージョン、対応GPU Capability Level 、対応CUDAバージョンについてまとめてみます。

PyTorchがサポートするGPUの Compute Capability

PyTorch バージョン サポートされる Compute Capability (SM) レベル
1.0.0 - 1.3.1 SM_35, SM_37, SM_50, SM_60, SM_61, SM_70
1.4.0 - 1.7.1 SM_37, SM_50, SM_60, SM_61, SM_70, SM_75
1.8.0 - 1.8.1 SM_37, SM_50, SM_60, SM_70, SM_75, SM_80
1.9.0 - 1.12.1 SM_37, SM_50, SM_60, SM_70, SM_75, SM_80, SM_86
1.13.0 - 2.0.1 SM_37, SM_50, SM_60, SM_70, SM_75, SM_80, SM_86, SM_89, SM_90
2.1.0 以降 SM_50, SM_60, SM_70, SM_75, SM_80, SM_86, SM_89, SM_90

PyTorch旧バージョンインストール方法参考ページ

https://pytorch.org/get-started/previous-versions/

PyTorchがサポートするPythonバージョン

PyTorch バージョン サポートされる Python バージョン
1.4.0 - 1.7.1 3.6, 3.7, 3.8
1.8.0 - 1.9.1 3.6, 3.7, 3.8, 3.9
1.10.0 - 1.12.1 3.7, 3.8, 3.9, 3.10
1.13.0 - 2.0.1 3.8, 3.9, 3.10, 3.11
2.1.0 以降 3.8, 3.9, 3.10, 3.11, 3.12

Compute Capabilityと代表的GPUラインナップ

SM_世代 データセンター/プロ向けGPU GeForce GPU
SM_100 (Blackwell) NVIDIA B100 (GB100), B200, GB202, GB203, GB205, GB206, GB207, NVIDIA B40, RTX PRO 6000 Blackwell GeForce RTX 5090, RTX 5080
SM_90 (Hopper) NVIDIA H100, NVIDIA H200 -
SM_89 (Ada Lovelace) NVIDIA L4, NVIDIA L40, RTX 6000 Ada Generation, L40s Ada GeForce RTX 4090, GeForce RTX 4080, GeForce RTX 4070 Ti / 4070, GeForce RTX 4060 Ti / 4060, GeForce RTX 4050
SM_86, SM_87 (Ampere) NVIDIA A100, NVIDIA A30, NVIDIA A40, RTX A2000, A3000, RTX A4000, A5000, A6000, A10, A16, A2 Tensor Core GPU, A800 40GB GeForce RTX 3090, GeForce RTX 3080, GeForce RTX 3070, GeForce RTX 3060, GeForce RTX 3050
SM_75 (Turing) Quadro RTX 8000, RTX 6000, RTX 5000, RTX 4000, T4 GeForce RTX 2080 Ti, GeForce RTX 2070, GeForce GTX 1660 Ti
SM_70, SM_72 (Volta) Tesla V100, Quadro GV100, Titan V, Xavier NX -
SM_60, SM_61, SM_62 (Pascal) Tesla P100, Quadro GP100 GeForce GTX 1080, GTX 1070, GTX 1060, GTX 1050, GTX 1030, GT 1010, Titan Xp
SM_50, SM_52, SM_53 (Maxwell) Tesla M-series, Quadro M6000 GeForce GTX 980 Ti, GTX Titan X, GTX 980, GTX 970
SM_35, SM_37 (Kepler) Tesla K40, Tesla K80 -
SM_30 (Kepler) - GeForce 700シリーズ, GT-730
SM_20 (Fermi) - GeForce 400, 500, 600, GT-630

出展: https://blog.qualiteg.com/nvidia-gpu-capability-level/

対応CUDAバージョン

SM_世代 アーキテクチャ 互換性のある最小CUDAバージョン CUDA 12.5での状態
SM_100 Blackwell - -
SM_90 Hopper CUDA 12.0以降 対応
SM_89 Ada Lovelace CUDA 11.8以降 対応
SM_86, SM_87 Ampere CUDA 11.1以降 対応
SM_80 Ampere CUDA 11.0以降 対応
SM_75 Turing CUDA 10.0以降 対応
SM_70, SM_72 Volta CUDA 9.0以降 対応
SM_60, SM_61, SM_62 Pascal CUDA 8.0以降 対応
SM_50, SM_52, SM_53 Maxwell CUDA 6.0以降 対応
SM_30, SM_35, SM_37 Kepler CUDA 5.0以降 サポート終了
SM_20 Fermi CUDA 3.2以降 サポート終了

関連ポスト

NVIDIA GPU 一覧・検索ツール
NVIDIA GPU と Capability Level

Read more

OpenCV cv2.imwrite で発生する「_img.empty()」エラーと「動画安定化」による解決法

OpenCV cv2.imwrite で発生する「_img.empty()」エラーと「動画安定化」による解決法

こんにちは! 画像処理や動画解析の現場で広く利用されている OpenCV。 しかし実務で動画処理を行っていると、時折以下のようなエラーに遭遇することがあります。 cv2.error: OpenCV(4.11.0) /io/opencv/modules/imgcodecs/src/loadsave.cpp:929: error: (-215:Assertion failed) !_img.empty() in function 'imwrite' このエラーは、cv2.imwrite() に渡された画像が空(None またはサイズ0) の場合に発生します。 一見単純に見える問題ですが、背後には「入力動画の不安定さ」や「並列処理の競合」といった要因が潜んでいることが少なくありません。 本記事では、このエラーの発生原因を掘り下げ、実務で効果のある解決策として 「動画の安定化(正規化)」 を紹介します。 TL;

By Qualiteg プロダクト開発部
発話音声からリアルなリップシンクを生成する技術 第5回(前編):Transformerの実装と実践的な技術選択

発話音声からリアルなリップシンクを生成する技術 第5回(前編):Transformerの実装と実践的な技術選択

こんにちは!リップシンク技術シリーズもいよいよ終盤となりました。 前回(第4回)では、LSTMの学習プロセスと限界について詳しく解説しました。限られたデータでも効果的に学習できるLSTMの強みを理解する一方で、長距離依存の処理に限界があることも明らかになりました。そして、この問題を解決する革新的なアプローチとして、すべての位置の情報を同時に参照できるTransformerのSelf-Attention機構を紹介しました。 第5回の今回は、 Transformerの具体的なネットワーク設計から始め、その実装上の課題を明らかにします。(前編※) そして、LSTMとTransformerの長所を組み合わせたハイブリッドアプローチを紹介し、実際の製品開発における技術選択の指針を示します。最後に、感情表現への拡張という次なる挑戦についても触れていきます。(後編※) ※Transformerの仕組みは複雑であるため、第5回は前編と後編に分けて解説させていただく予定です。 1. Transformerベースのネットワーク設計 1.1 全体アーキテクチャ図 では、さっそく、Tran

By Qualiteg 研究部, Qualiteg コンサルティング
大企業のAIセキュリティを支える基盤技術 - 今こそ理解するActive Directory 第2回 ドメイン環境の構築

大企業のAIセキュリティを支える基盤技術 - 今こそ理解するActive Directory 第2回 ドメイン環境の構築

こんにちは、今回はシリーズ第2回ドメイン環境の構築 - 検証環境の構築手順について解説いたします! 連載の構成 第1章:基本概念の理解 - Active DirectoryとKerberos/NTLM認証の基礎 【★今回です★】第2章:ドメイン環境の構築 - 検証環境の構築手順 第3章:クライアントとサーバーのドメイン参加 - ドメイン参加の詳細手順 第4章:プロキシサーバーと統合Windows認証 第5章:ブラウザ設定と認証 - 各ブラウザでの設定方法 第6章:トラブルシューティング - よくある問題と解決方法 第7章:セキュリティとベストプラクティス - 本番環境での考慮事項 第8章:実践的な構成例 - AIセキュリティツールとの統合事例 第2章:ドメイン環境の構築 2.1 ドメイン名の設計 2.1.1 ドメイン名の命名規則 Active Directoryを構築する際、

By Qualiteg コンサルティング
AIがよく間違える「クロージャ問題」の本質と対策

AIがよく間違える「クロージャ問題」の本質と対策

こんにちは! 本日は「クロージャ問題」に関する話題となります。 Pythonでループ内に関数を定義したことはありますか? もしあるなら、あれれ?な挙動に遭遇したことがあるかもしれません。 本稿では、Pythonプログラマーなら一度は経験する「クロージャ問題」について、初心者にもわかりやすく解説してみたいとおもいます クロージャとは何か? そもそも ”クロージャ” とは何でしょうか。 クロージャ(closure)とは、関数が自分の定義されたスコープの変数を覚えて持ち運ぶ仕組み のことです。 もう少し分解すると、次の2つがポイントとなります 1. 内側の関数が、外側の関数の変数を使える 2. 外側の関数が終了しても、その変数は生き続ける 普通の関数とクロージャ―を使った関数を比較してみましょう 普通の関数との比較 まずは普通の関数から、 def add(x, y): return x + y print(add(3, 5)) # 8 print(add(3, 7)

By Qualiteg プロダクト開発部