以前書いたCUDAの記事のOpenCL版。 こちらも、いちばん簡単なんてタイトル付けてるけど実は他のやり方をあまり調べてないというか、OpenCLはじめて数時間の初心者なので、もっといい方法があれば教えてください。 0. 準備 今回使ったのはXcode 4.6.2。 CUDAのときはCUDAドライバやtoolkitのインストールが必要だったけど、最近のMacはOpenCLに標準対応してるのでXcodeさえあればすぐに開発をはじめられるはず。 OpenCLは特にGPU限定のAPIってワケじゃないけど、今回はGPUの利用を前提とした説明となる。 1. Xcodeで新規プロジェクトを作成 OS X → Application → Command Line Tool を選択。 今回は言語をC++とした。 ちなみにCUDAのときはホストコードの言語をCにしたけど、CUDAカーネルはC++で書ける。
OpenGL および OpenCL グラフィックスを扱う Mac コンピュータ macOS のアプリケーションでは、Mac に搭載されている最新のグラフィックプロセッサ (GPU) を最大限に活用するため、OpenCL や OpenGL が使われています。Mac でサポートされている OpenGL および OpenCL のバージョンについて説明します。 下表には、Mac でサポートされている OpenCL および OpenGL のバージョンをまとめています。 各 GPU のハードウェア性能によって、サポートされる OpenCL および OpenGL のバージョンは異なります。一部の GPU は OpenCL をサポートしないため、「—」と記載されています。具体的なバージョンの要件があるアプリケーションもあります。 iMac
I am looking at the official documentation on the Apple site, and I see that there is a quickstart about how to use OpenCL on Xcode. Maybe it is just me, but I had no luck building the code that is mentioned on the "hello world OCL" section. I've started Xcode and created an empty project; created a main.c and a .cl kernel file, pasting what is on the Apple developer site, and I am not able to get
どうも、吉村です。 今回はGPUのパワーを体感してみたいと思います。 お題としては波で、最終結果はこのようになります。 メッシュにはなっておらず、全て点で出来ています。 また、頂点の高さでカラーリングしています。 wave-gpu from wowdev on Vimeo. 波はセルベースの計算方法で、セル同士をバネで接続することで波のように見せます。 ・セルはそれぞれ高さを持つ ・隣のセルが離れていればお互いに引っ張り合う ・0の高さに引っ張る力がある これらの規則で毎フレーム処理すれば波っぽくなります。 波動方程式は難しくて今はよくわからないので、ひとまず無視します。 この処理をするにあたって、一番の壁になるのは処理速度です。 というのも、セルは2次元の広がりがあるため、あっという間に計算量が膨れ上がります。 例えば、100×100でも1万、500×500なら25万、1000×1000
は「OpenCLでいくぜ! (7)」で説明したように実行時にコンパイルされるもんであって、アプリケーション作成時にコンパイルが必要なわけねーんすよ。 ただ、これまた「OpenCLでいくぜ! (8)」で説明したように事前にソースコードが正しいかを判断する方法が無いって問題もあったわけで… 考えられるのは、Appleが事前にOpenCL用ソースをコードチェックできるようにOpenCLコンパイラを用意するつもりなのかなって事です。 で、現段階でOpenCLコンパイラは用意されていないと… 実際プロジェクトのBuild Rulesには OpenCLって項目があって とかなってて、これが なんじゃないかと思うんですな。 というわけで.cl拡張子がついてるやつは必ずOpenCLコンパイラが走ることになる。 今のところ回避方法としてはTARGETSのBuild PhasesタブのCopy Bundle
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く