Thrustを使ったGPUによる高速フィボナッチ数列計算

2025-06-27
Thrustを使ったGPUによる高速フィボナッチ数列計算

このブログ投稿では、GPUプログラミングとNVIDIAのThrustライブラリを使用して、非常に高速にフィボナッチ数列を計算する方法を示します。まず、スキャンアルゴリズムを説明し、次にThrustで単純な加算と乗算を行うスキャン操作、そしてそれを行列演算に拡張する方法を示します。最後に、行列演算とスキャン操作を利用して、効率的にフィボナッチ数列を計算する方法を示し、剰余演算を使って整数オーバーフローを回避します。著者は、NVIDIA GeForce RTX 3060 Mobile GPUでF99999999 (mod 9837)をわずか17ミリ秒で計算しました。

続きを読む

Mojoによる高効率行列転置:CUDAを超えるか?

2025-06-06
Mojoによる高効率行列転置:CUDAを超えるか?

このブログ記事では、Mojoを使用してHopperアーキテクチャ上で高効率な行列転置カーネルを実装する方法を詳しく説明します。作者はナイーブなアプローチから始めて、2775.49 GB/sの帯域幅を達成するカーネルに至るまでの最適化プロセスを段階的に示しています。これは、同等のCUDA実装と競合し、場合によってはそれを上回る可能性があります。最適化には、TMA(テンソルマップアクセス)記述子の使用、共有メモリ最適化、データスウィズリング、スレッドの粗粒化などが含まれます。この記事では、各手法の実装の詳細とパフォーマンス向上について深く掘り下げ、完全なコード例を提供します。

続きを読む
開発 行列転置