0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Raspberry Pi 5でOpenCL

Last updated at Posted at 2025-06-25

Raspberry Pi でOpenCLが動くというのは知っていたのだが、Raspberry Piが4、5になったときにGPUの仕組みが変わってしまって云々ということだった。
RaspberryPiOSではなくて、Ubuntuを入れればできるという話もあり、それはなぜかというと、Ubuntuの24.10はVulkanなどのドライバなどが新しいからだという話で、Raspberry Pi5でOpenCLをやるなら、Ubuntuを入れろ、というのが大前提のようではあったのだが、すでにRaspberrPiOSを入れてしまったのでUbuntu に入れ替えるのは面倒だしどうしようかと考えて、ちょっと調べた。
この記事を書いている時点でのRaspberryPiのカーネルは十分新しかった(Linux darkpi 6.12.25+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.12.25-1+rpt1 (2025-04-30) aarch64 GNU/Linux)し、Vulkanドライバの新しめ(Vulkan Instance Version: 1.3.239)が適用されていて、Mesaも(client glx vendor string: Mesa Project and SGI
OpenGL core profile version string: 3.1 Mesa 24.2.8-1~bpo12+rpt3
OpenGL version string: 3.1 Mesa 24.2.8-1~bpo12+rpt3
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 24.2.8-1~bpo12+rpt3
)ということなので、Ubuntuを入れなくてもOpenCLの構築は可能そうだったので、https://github.com/kpet/clvk?tab=readme-ov-file のclvkのビルドを試み、一応成功したのでポイントを書いておく。
まずはRaspberryPi5のメモリは8GB以上が推奨である。そしてスワップファイルも8GB以上確保しないとビルドは途中で失敗する。
また、ディスク容量は空き容量が128GBくらいあった方がよさそうだ。clvkはllvmをダウンロードしてくる(これだけで49MBを超える可能性がある。)ので、64GBのSDカードではビルドできない。
2025年6月号のInterfaceでRaspberryPi5でOpenCLという特集が組まれていて大変参考になったが、気が付くのが遅くて、ビルド終了後に読んだ。

実際のところはOpenCLでゴリゴリプログラムを作りたいわけではなく、BLASのGEMM演算を早くしたいだけなので、今はclblastをビルドしているところだ。通常ビルドはうまくいったようで、今はチューニングビルドをしているところである。
clblastはBLAS演算のほかにim2col演算がついているので、ちょっと期待している。
チューニングが動き出してまるいちにち経つのだが、終わっていない。エラーがあるとやたら時間がかかるようである。
ちなみに、RaspberryPiでOpenBLASを使うなら、最新のOpenBLASをhttps://github.com/OpenMathLib/OpenBLAS/releases あたりからダウンロードして自前でビルドしたものを使うと良い。aptで取得できるものはご存じの通り古い。
使い方としては、OPENBLAS_NUM_TREADS=2が一番早い。
clblastのチューニングが成功したら続く。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?