SSブログ

CUDAでライブラリ作ったところで立ち往生 [プログラミング]

CUDA関係のエントリーは久しぶりですね。ここのところ、進展がなかったので進捗が全然書けなかったんだけれど、とりあえず進んでいるところまで書きますね。

nvccでコンパイルしたオブジェクトをarでライブラリにした。でも、入れたライブラリ内で見る事ができなかった。nmコマンドで見ると、こんなファイル形式知らないと言われる。

 nm: libusecuda.a: File format not recognized


nvccの説明書を見ていたら、ライブラリを作るオプション(-lib)が見つかったのでそれを使う。オプションの引数を失敗したときarのエラーが出ていたので、やっている事は大して違わないのかもです。

 /usr/local/cuda/bin/nvcc -lib obj/release/dct.c.o obj/release/dct.cu.o -o ./libusecuda.a

 ar rc foo.o bar.o libusecuda.a

とりあえず、ライブラリ作成の時はエラーが出ないが、使おうとして取り込んだ後で、関数が見えないのは同じ。nmをやっても先と同様に、ファイルフォーマットがダメですと言われる。

情報がどうにも見つからないので、CUDAフォーラムにお助けを頼んだ。誰か答えてくれるかなぁ。これが通らないと移植はかなり力仕事になる上、バージョンが上がられた日には対応も難しくなる。HandBreak自体がかなりいろんなところからソースを引っ張ってきているので、ライブラリで取り込まないとかなり面倒な事になる。

この事象が解決するまでペンディングにします。というか、なってます。


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

nice! 0

コメント 0

コメントを書く

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