2016-12-15 3 views
0

私はpdfをnodejsパッケージを使って画像に変換しています:https://www.npmjs.com/package/pdf2images-multipleGhostScriptにGPUが必要ですか?

これは、グラフィックカードを持つ2つの異なるローカルマシンのドッカーで正常に動作します。しかし、Google Cloud(GPUを搭載していない)のサーバーでこれを実行しようとすると、次のエラーがグラフを持っている特定のPDFページのために発生します。

error: message=Failed to convert page to image, killed=false, code=1, signal=null, cmd=gm convert -density 150 -quality 100 -sharpen 0x1.0 -trim '/usr/src/app/1161115-30-1kabyqq.2bteimgqfr.pdf[7]' '/usr/src/app/pdfimages1161115-30-10uod6h.siy6pyzaor/1161115-30-1kabyqq-7.png', stdout=, stderr=gm convert: "gs" "-q" "-dBATCH" "-dMaxBitmap=50000000" "-dNOPAUSE" "-sDEVICE=pnmraw" "-dTextAlphaBits=4" "-dGraphicsAlphaBits=4" "-r150x150" "-dFirstPage=8" "-dLastPage=8" "-sOutputFile=/usr/src/app/gmxHC5iw" "--" "/usr/src/app/gm0tibSq" "-c" "quit" (child process quit due to signal 11). gm convert: Postscript delegate failed (/usr/src/app/1161115-30-1kabyqq.2bteimgqfr.pdf).

私はGPUでAWSインスタンスを作成しました。このエラーは発生しません。 GhostScriptでGPUバリアントをスキップできる環境変数があるかどうかを調べるには、少なくともGoogle CloudがGPUを取得するまで、あるいは私がここで見ていない代替方法を得るまで。

GraphicsMagickというエラーメッセージのコマンドには、GPU技術を使用しないというドキュメントがあります。 http://www.graphicsmagick.org/FAQ.html#are-there-any-plans-to-use-opencl-or-cuda-to-use-a-gpu

+0

GhostScriptにGPUが必要であるとは思っていませんでした。とにかく、私は、 "シグナル11に起因する子プロセスの終了"は、子供が、私が 'gm'と思っているのは、segfaultでクラッシュしたと言います。私はそれがGPUの欠如に関連すると思うことを嫌っていますが、私はそれを排除するのに十分な情報がありません。 –

答えて

0

GhostscriptはGPUを必要とせず、(Xを使用してビットマップを表示する以外に)実際には使用できません。いくつかのSIMDコードがありますが、それを使わずにコンパイルすることはできますが、使用しているGhostscriptがどのようにコンパイルされているのか分かりません。

Linuxの場合、ABIはCランタイムのような点で2つのシステムで異なるため、バイナリを別のボックスに移動することはできません。また、実行可能ファイルが共有ライブラリでコンパイルされている場合(多くのディストリビューションがこれを主張する)、異なるバージョンの共有ライブラリが問題を引き起こす可能性があります。

私の推測では、GPUの有無ではなく、Google Cloud LinuxとAWS Linuxの間に大きな違いがあると思います。

LinuxにGhostscriptを配備する最良の方法は、使用するマシンのソースからビルドすることです。これは、異なる構成の複数のマシンにインストールする場合に特に当てはまります。

関連する問題