Bagaimana cara memulai tugas pelatihan AWS Sagemaker dengan akses GPU di kontainer buruh pelabuhan saya?

Saya memiliki beberapa kode python yang melatih Jaringan Neural menggunakan tensorflow.

Saya telah membuat gambar buruh pelabuhan berdasarkan gambar tensorflow/tensorflow:latest-gpu-py3 yang menjalankan skrip python saya. Ketika saya memulai instance p2.xlarge EC2 saya dapat menjalankan kontainer buruh pelabuhan saya menggunakan perintah

docker run --runtime=nvidia cnn-userpattern train

dan wadah dengan kode saya berjalan tanpa kesalahan dan menggunakan GPU host.

Masalahnya adalah, ketika saya mencoba menjalankan wadah yang sama dalam tugas pelatihan AWS Sagemaker dengan instance ml.p2.xlarge (saya juga mencoba dengan ml.p3.2xlarge), algoritme gagal dengan kode kesalahan:

ImportError: libcuda.so.1: tidak dapat membuka file objek bersama: Tidak ada file atau direktori tersebut

Sekarang saya tahu apa arti kode kesalahan itu. Ini berarti lingkungan runtime dari host buruh pelabuhan tidak disetel ke "nvidia". Dokumentasi AWS mengatakan bahwa perintah yang digunakan untuk menjalankan image buruh pelabuhan adalah selalu

docker run image train

yang akan berfungsi jika runtime default disetel ke "nvidia" di docker/deamon.json. Apakah ada cara untuk mengedit host deamon.json atau memberitahu buruh pelabuhan di Dockerfile untuk menggunakan "--runtime=nvidia"?


person user2443088    schedule 06.03.2019    source sumber


Jawaban (1)


Dengan bantuan layanan dukungan AWS kami dapat menemukan masalahnya. Gambar buruh pelabuhan tempat saya menjalankan kode adalah, seperti yang saya katakan tensorflow/tensorflow:latest-gpu-py3 (tersedia di https://github.com/aws/sagemaker-tensorflow-container)

tag "terbaru" mengacu pada versi 1.12.0 saat ini. Masalahnya bukan pada saya sendiri, tetapi pada versi gambar buruh pelabuhan ini.

Jika saya mendasarkan gambar buruh pelabuhan saya pada tensorflow/tensorflow:1.10.1-gpu-py3, gambar tersebut akan berjalan sebagaimana mestinya dan menggunakan GPU sepenuhnya.

Rupanya runtime default disetel ke "nvidia" di docker/deamon.json pada semua instance GPU AWS sagemaker.

person user2443088    schedule 07.03.2019