1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PyOpenCLを使った多倍長演算のGPU最適化

Last updated at Posted at 2025-07-15

はじめに

ローエンドのノートPCや小型PCでGPUを活用した高速演算はまだまだ挑戦の余地があります。
今回、Intel Celeron N5105(内蔵GPU)+8GBメモリの環境で、Pythonの多倍長Decimal演算をPyOpenCLでGPU化し、CPU演算に比べて加算で160倍、減算で172倍の高速化を達成しました。

実行環境

項目 内容
CPU Intel Celeron N5105(4コア)
メモリ 8GB
GPU Intel統合GPU
OS Windows 11 pro
開発言語 Python 3.9
使用ライブラリ PyOpenCL, Numba

ベンチマーク結果

処理 CPU Decimal (秒) GPU (秒) 向上率 備考
加算 2.94 0.018 約160倍速 圧倒的
減算 2.99 0.017 約172倍速 加算同様
乗算 0.000012 0.0025 約208倍遅い CPUが断然有利
除算 0.000021 0.0025 約119倍遅い 乗算同様

実装ポイント

PyOpenCLでGPUカーネルを作成し、local_size(ワークグループサイズ)を最適化。

host_ptrをFalseに設定し、メモリ転送のオーバーヘッドを削減。

乗算・除算は非常に軽量な演算なので、GPU化による転送コストがかえって遅延に繋がる結果に。

考察

ローエンドPCの統合GPUでも、加減算に関しては高い並列度とlocal_sizeの調整で大幅な高速化が可能なことを示しました。
乗除算のような軽量処理はGPUの転送オーバーヘッドがボトルネックとなり、逆にCPU処理の方が速いケースがあるため、処理ごとに使い分けが重要です。

おわりに
本研究は一部最適化技術を非公開としていますが、ローエンド環境におけるGPU活用の可能性を示す一例として参考になれば幸いです。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?