最近、Android OpenCLを使用して並列コンピューティングアプリケーションを開発します。私の知る限り、Androidシステムには「libopencl.so」が含まれていませんが、 AndroidでのOpenCL開発を示すWebまたはブログはまだいくつかあります。Android OpenCLをサポートしていますか?サポートしている場合、AndroidでOpenCLを開発するにはどうすればよいですか?
2016年5月20日更新
arm64-v8a
ABIを備えたすべてのデバイスの場合、OpenCLライブラリはlib64
フォルダーにも配置される場合があります。
OpenCLライブラリを確認するときは、対応するlib64
フォルダーも確認してください(アプリの最初のABIとしてarm64-v8a
を使用したい場合は、最初にlib64
フォルダーを確認することをお勧めします)。
例:/system/vendor/lib64/libOpenCL.so
元の答え:
2014年以降、OpenCLをサポートする電話の数は増えています。
OpenCLライブラリの場所は次のとおりです。
Qualcomm Adreno:
/system/vendor/lib/libOpenCL.so
or /system/lib/libOpenCL.so (older devices)
ARMマリ:
/system/vendor/lib/egl/libGLES_mali.so
or /system/lib/egl/libGLES_mali.so
PowerVR:
/system/vendor/lib/libPVROCL.so
OpenCL-Z Android を使用して、AndroidデバイスでOpenCLの使用可能な機能を確認できます。
厳密に言うと、AndroidはOpenCLをサポートしていません。これはGoogleの(悪い)選択です。ただし、Android Kirtanが提供するリンクから、QualcommのAdreno GPUであると思われる最も単純なもの(つまり、携帯電話にはすでにOpenCLが搭載されている)であるSonyルートをお勧めします。
私が知っている唯一のImagination OpenCLの可用性は this dev board にあります。それはSGX544を持っているので、あなたはそのボードからドライバーを取り出してデバイスに置くことができるかもしれません。それはうまくいくかもしれません...
余談ですが、OpenGL ES 3.1はGLコンピュートシェーダーをサポートし、Androidでサポートされているため、GPUを使用して何かを出荷するオプションを計算。