2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Celeron N5105でPyOpenCLを使ったマンデルブロ集合の270倍高速化

Last updated at Posted at 2025-07-16

Celeron N5105におけるPyOpenCL活用例 マンデルブロ集合

はじめに

ローエンド環境でもGPUをうまく活用すれば、計算処理を大幅に高速化できる可能性があります。
本記事では、Intel Celeron N5105(統合GPU)を搭載した環境にて、Python + PyOpenCLを用いてマンデルブロ集合を高速に描画し、CPUに比べて約270倍の処理速度を実現した事例を紹介します。


実行環境

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

ベンチマーク結果

処理方法 平均実行時間(秒)
CPU描画 16.875949 秒
GPU描画 0.062526 秒
向上率 約 269.90 倍

出力画像

CPUで描画された画像(解像度、色情報ともに同じ条件で描画)

mandelbrot_cpu.png

GPUで描画された画像

mandelbrot_gpu.png

実行時間と速度向上グラフ

実行時間比較(CPU vs GPU)

mandelbrot_times.png

速度向上率の視覚化

mandelbrot_speedup.png


実装ポイント

  • GPUカーネルをPyOpenCLで実装し、ピクセルごとに独立した並列演算を割り当て。
  • local_size の調整を行い、効率的なワークグループ配置を最適化。
  • 転送コスト削減のため host_ptr=False で明示的に管理。
  • ループ回数を抑える工夫など、GPU向けに特化した実装を設計。

考察

Celeron N5105のようなローエンドCPUに内蔵されたGPUでも、並列性の高いタスク(今回のようなピクセル独立の演算)に対しては非常に高いパフォーマンスが得られることが確認できました。

特に描画系タスクでは、計算そのものよりも**「処理の並列化」と「転送最小化」**が鍵となります。
本結果は、PyOpenCLによるGPU制御がローエンドでも十分効果的であることを示す良い例となりました。


おわりに

今後はこの高速描画技術を応用し、ズーム可能なマンデルブロ集合やフラクタルアニメーション、さらに最適化していきます。

本記事が、ローエンド環境でもGPU活用を検討する際の参考になれば幸いです。


中途半端な実装を公開するのではなく、最大限の最適化を施した形で初めて公開するつもりです。

2
1
1

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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?