サーバ上でCUDAが使えない
bottleやflaskなどのウェブフレームワークを使って作ったgunicornサーバ上でGPUを使おうとしたとき、下記エラーに遭遇したことはないでしょうか?
Cannot re-initialize CUDA in forked subprocess. To use CUDA with multiprocessing, you must use the 'spawn' start method
そんなときは、gunicornの代わりにgeventを使ってみてください。
例えばbottleの場合、
run(host="0.0.0.0",server="gunicorn",port=5000)
この部分を↓↓
run(host="0.0.0.0",server="gevent",port=5000)
このように変更するだけです。
※追記
geventだと複数ワーカーは動かないようで、ワーカー管理は別の枠組みが必要。