[論文レビュー] Escort: Efficient Sparse Convolutional Neural Networks on GPUs
Escortは、行列乗算の低レベル化を回避する直接的なスパース畳み込みカーネルをGPU向けに提案し、並列性とデータ局所性を最適化することで、スパース畳み込みにおいてCUBLASおよびCUSPARSEよりも2.63倍〜3.07倍の高速化を達成し、全体の推論速度において1.38倍〜1.60倍の向上を実現した。これにより、スパarsityに起因する不規則性とメモリ再利用の悪さによる非効率性を克服した。
Deep neural networks have achieved remarkable accuracy in many artificial intelligence applications, e.g. computer vision, at the cost of a large number of parameters and high computational complexity. Weight pruning can compress DNN models by removing redundant parameters in the networks, but it brings sparsity in the weight matrix, and therefore makes the computation inefficient on GPUs. Although pruning can remove more than 80% of the weights, it actually hurts inference performance (speed) when running models on GPUs. Two major problems cause this unsatisfactory performance on GPUs. First, lowering convolution onto matrix multiplication reduces data reuse opportunities and wastes memory bandwidth. Second, the sparsity brought by pruning makes the computation irregular, which leads to inefficiency when running on massively parallel GPUs. To overcome these two limitations, we propose Escort, an efficient sparse convolutional neural networks on GPUs. Instead of using the lowering method, we choose to compute the sparse convolutions directly. We then orchestrate the parallelism and locality for the direct sparse convolution kernel, and apply customized optimization techniques to further improve performance. Evaluation on NVIDIA GPUs show that Escort can improve sparse convolution speed by 2.63x and 3.07x, and inference speed by 1.38x and 1.60x, compared to CUBLAS and CUSPARSE respectively.
研究の動機と目的
- スパarsityに起因する不規則性とメモリ帯域幅の低利用がGPU上でのスパース畳み込みに与える非効率性を解消すること。
- モデルサイズを削減する重み prune による性能低下を是正すること。これは、高いスパarsityを示すが、GPU上での推論速度が著しく低下するという問題を伴う。
- 行列乗算への低レベル化を回避することで、データ再利用と規則性を維持するGPU最適化されたスパース畳み込みカーネルを設計すること。
- 直接的なスパース計算アプローチにより、並列性と局所性を適切に調整することで、スパース畳み込みにおいて高いパフォーマンスを達成すること。
提案手法
- 行列乗算への低レベル化を回避する直接的なスパース畳み込みカーネルを実装し、データ局所性を保ち、メモリ帯域幅の無駄を削減する。
- スレッドレベルおよびデータレベルの並列性を最適に統合し、スパース演算をGPUのストリーミングマルチプロセッサに効率的にマッピングする。
- データ再利用を最大化し、不規則なメモリアクセスパターンを最小限に抑えるために、カスタマイズされたメモリアクセスパターンとタイリング戦略を適用する。
- カーネル起動設定とメモリコalescingを最適化し、スパース計算における占有率の向上と遅延の低減を図る。
- 効率的なスパース重み表現とメモリアクセスを実現するため、CSRに類似したフォーマットを採用する。
- 実世界のモデルにおけるエンドツーエンドのパフォーマンスを評価するために、カーネルを完全な推論パイプラインに統合する。
実験結果
リサーチクエスチョン
- RQ1直接的なスパース畳み込みは、行列乗算に基づくアプローチと比較して、GPU上でのパフォーマンスにおいてどのように異なるか?
- RQ2最適化された並列性とデータ局所性は、大規模並列GPU上でのスパース演算の非効率性をどの程度緩和できるか?
- RQ3CUBLAS や CUSPARSE といった高度に最適化されたライブラリを上回る性能を、カスタムスパース畳み込みカーネルが達成できるか?
- RQ4スパarsityは推論速度にどのような影響を与えるか? また、アルゴリズム的およびアーキテクチャ的最適化によって、その影響をどのように是正できるか?
主な発見
- Escortは、NVIDIA GPU上でのスパース畳み込み処理において、CUBLAS比で2.63倍、CUSPARSE比で3.07倍の高速化を達成した。
- CUBLASおよびCUSPARSE比で、全体のモデル推論速度がそれぞれ1.38倍および1.60倍向上した。
- 行列乗算への低レベル化を回避することで、Escortはメモリ帯域幅の圧力を軽減し、スパース演算におけるデータ再利用を向上させた。
- 直接的なスパースカーネル設計により、GPUの占有率とパフォーマンスを阻害する不規則なメモリアクセスパターンが効果的に軽減された。
- スレッドマッピング、メモリアクセス、タイリングに対するカスタマイズされた最適化が、スパース畳み込みカーネルのパフォーマンスを顕著に向上させた。
- 複数のモデルおよびスパarsityレベルにわたり、一貫したパフォーマンス向上が得られ、現代のGPUアーキテクチャにおける堅牢性とスケーラビリティを示した。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。