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自体がかなりいろんなところからソースを引っ張ってきているので、ライブラリで取り込まないとかなり面倒な事になる。
この事象が解決するまでペンディングにします。というか、なってます。
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
コメント 0