SSブログ

HandBrakeにOpenCL組込み成功(動作失敗) [MacOSX]

今まで、x264部分にOpenCLを入れ込むところまでは、とりあえずコンパイルリンクが通るまではできていた。最後のHandBrakeのバイナリを作るところになると、OpenCLフレームワークを入れなくてはならず、ビルド時の設定ファイルがどこでそれを指し示しているのか分からずに途方に暮れていた。リンク時に出てくる文字列をSpotlightに通しても、それらしい部分が見えてこないのだった。



今までの通り、使えないspotlightのばーかばーかと言っていたんだけど、macosx/HandBrake.xcodeprojをXcodeで開いて、プロジェクトの設定に組み入れてあげて保存したら、HandBrakeCLIとHandBrake.appのビルドが通っちゃった。大したメイクファイルでもないので、こういうのは自動化して欲しくないなぁ。余計分かりづらい。自動化するんだったら、まともにxcodeからすんなりビルドできるようにしておいて欲しいのだが…。

とはいえ、ちょっと動かしてみる。

 Error opening file dct_kernel.cl

あれれ、エラーとか言ってるけど、通常動作しちゃった。あ、ただ処理をパスするようになってたんだった。

そのままでは、OpenCL用のソースファイルがなくて動かないので、ファイルをHandBrakeCLIと同じディレクトリに移動。HandBrake.appだったら、HandBrake.app/Contents/MacOS/HandBrakeと同じディレクトリに入れないといけないのかな? 後々、コマンドラインアプリで動作したら調べる事になるでしょう。同じディレクトリに置いたら、下記のような結果になった。

 Loading kernel source from file 'dct_kernel.cl'...
 Error: Failed to build program executable!

を?、コピって来たところにエラーがトラップされてますね。読んでる事は読んでるみたいなので、良い傾向。というか、急にでっち上げたclファイルなので、動くのが確認されているファイルを持ってきて実験してみましょうか。という事で、しばらくこの件は潜ります。案外、clファイルさえきちんとかけちゃえば、後は読み込むデータの幅がどれだけかになってくるだけかもしれません。

色々やって、CL関係のエラーをぽちぽちと殺してみましたが、今度は逆にエラーがなくなって直しどころが分からなくなってしまいました。本体のBus Errorが出て、序盤で動作が止まってしまい、直す手がかり無しです、とほほ(死語)。

.clファイルは一歩一歩作っていった方が、エラーが捉えられて分かりやすいです。他のコンパイラもそういうのがあるのですが、特にいっぺんにエラーが出ると黙っちゃうタチなので、エラーが出たらコメントアウトで間違い部分を特定してあげましょう。

タグ:GPGPU
nice!(1)  コメント(0) 
共通テーマ:パソコン・インターネット

nice! 1

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。