早々にネタ切れした学習推論ライブラリのアドカレ
自分の記事をどこかに投稿したかった。
そんな理由で建てた学習推論ライブラリ アドカレでしたが、所詮はただの素人、早々にネタ切れしてしまいマッタリと他のアドカレ投稿記事を見て楽しんでいました。
それはそれで別に良かったのですが、最近アップデートされたTensorRT-RTXのリリース情報より、CUDA 13.1がリリースされていることを知りました。
CUDAはNVIDIAの基本的なライブラリで、多くの方はある程度バージョンを固定した状態で利用されているのではないかと思います。
私もできるだけ枯れたバージョンのCUDAを使いたいタイプなのですが、TensorRT-RTXはCUDA 12.9が最低バージョンなので渋々12.9を利用していたのですが・・・
CUDA 13.1 is here. It is the biggest expansion of CUDA since it launched in 2006.
CUDA 13.1 が登場しました。2006年の発売以来、CUDA における最大の拡張です。
CUDA Tile を導入します。これは、GPUをプログラミングする新しい方法で、より多くの開発者が強力なAIと加速コンピューティングをより簡単に利用できるようにします。
CUDA Tile?新しいCUDAの派生ライブラリかな?
と思ったら全然違ってて。
わたしはCUDAプログラミングに詳しい訳ではないので、詳しくは公式blogを見てください、なのですが、個人的にはこれはかなり大きな出来事だと思うので、抜粋してご紹介させていただきます。
CUDA Tileとは
CUDAはこれまで、シングル命令マルチスレッド(SIMT)のプログラミングを提供していました。
SIMTプログラミングでは細かな制御を可能にする一方、GPUアーキテクチャ間で高性能を維持するには多くの労力が必要でした。
その課題に対し、CUDA Tile はより高レベルなGPUプログラミング手法を提供し、テンソルコアなどの専用ハードウェアを抽象化することで、将来のアーキテクチャにも対応しやすいコードを書くことを可能にします。
タイルベースプログラミングでは、データをタイル単位で扱い、そのタイル上で行う計算だけを記述すればよく、細かな実行制御はコンパイラとランタイムが自動で最適化します。これにより、複雑化するGPUハードウェアを効率的に活用できるようになります。
CUDA TileのタイルモデルとCUDA SIMTモデルの概念的な違いは次の図のようなものです。
左がタイルモデル、右がSIMTモデル。
タイルモデルは、データをブロックに分割し、コンパイラはスレッドにマッピングします。
SIMTモデルは、データをブロックとスレッドの両方にマッピングします。
タイルモデルプログラミングでは、SIMTモデルプログラミングよりも抽象化が進んでいるイメージがわかります。

CUDA Tileの基盤はCUDA Tile IR
CUDA Tileの中心には CUDA Tile IRという中間表現があり、GPUをタイル単位で扱うための仮想命令セットを提供します。これにより、開発者はGPU世代をまたいで効率的に動作する高レベルコードを書けるようになります。
従来のPTX(Parallel Thread Execution)がSIMTプログラムの移植性を担保するのに対し、CUDA Tile IRはタイルベースプログラミングをネイティブにサポートし、スレッド配置やメモリ階層、テンソルコアなどのハードウェア管理を抽象化します。開発者はタイルやタイルブロックに基づくアルゴリズム設計に集中できます。
この抽象化により、NVIDIAハードウェア向けの高レベルコンパイラやDSLを構築しやすくなり、タイルプログラミングにおけるCUDA Tile IR は、SIMTにおけるPTXと同様の役割を果たします。
重要なのは、SIMTとタイルプログラミングは排他的ではなく共存するという点です。
SIMTが必要な場面では従来通りカーネルを書き、テンソルコアを活用したい場合はタイルカーネルを書く、という使い分けが可能です。
もっと知りたい方は
次のあたりがCUDA Tileに関する記事だと思いますので、見てみください。
cuTile Pythonの例が、より抽象化されたイメージがよく伝わりました。
個人的な感想
CUDAは、NVIDIAをここまで発展させてきた基本的な技術であり、そこから科学計算やAI処理などにマッチした様々なライブラリを開発してきた根幹となる技術であると考えています。
既に十分に枯れた技術で、大きなパラダイムシフトはないだろう、と勝手に判断して、あまりアップデートの情報などにも目を通していなかったのですが・・・。
このCUDA 13.1のCUDA Tileはヤバそうな気がします。
これまでのCUDAでもdeepseekの開発のように細かく処理を指示することもできますが、かなり人間離れをするような苦行が待っているのではないか?と想像しています(苦行をやりきったのはほんと凄いと思ってます)。
CUDA Tileでは、細かい指示部分は、NVIDIAの開発者が抽象化することで肩代わりし、開発者はもっとアルゴリズムの部分に注力することが可能になります。
deepseekと同等の制御や最適化とまではいかないかもしれませんが、より少ない労力で破綻せずにこれまでより良いパフォーマンスを得ることができそうな気がしています。
CUDAは、PTXという中間言語で動いている、というのはOpenCVのコンパイルなどを通して知っていましたが、まさかここに並ぶ技術を新たに追加してくる、というのが驚きです。
AIの学習や推論を行うのは、何もGPUである必要はなく、NPUなどの方が電力効率やコストパフォーマンスよく実現できる面も出てきているのではないか?と思っていたのですが、根幹技術のCUDAに大きな手を入れてきたことでNVIDIA GPUを用いることでより開発スピードや高いパフォーマンスをあげることができるようになるのではないか?
巨大になったNVIDIAが、これからも加速するための一手になるのではないか?と期待しています。
