SageMaker Studio LabでJuliaを使う
SageMaker Studio Lab
昨年末AWSから無料で使えるノートブック環境としてSageMaker Studio Labが発表されました。
似たようなサービスとして、Google Colaboratoryがあります。あちらはJupyterに似た独自のノートブック環境を実行するサービスですが、SageMaker Studio LabはJupyterLabそのものという感じです。Colabと違って、ターミナルを使えたり、一つのランタイムで複数のノートブックを作成できたりします。
Studio Labではランタイムを停止してもインスタンスの実行環境は破棄されずそのままになるそうです。そのためデフォルトにないパッケージを多用する場合、毎回それらを入れ直す必要がなくなることになります。これは手軽に無料でJuliaのクラウド実行環境を用意するのに良いのではないかと思い、やってみました。
SageMaker Studio Lab自体の登録はAWS公式の案内通りにやれば良いです。利用申請してから数時間でアカウントが発行されました。
Juliaを使う
まず、公式の手順に従ってJuliaをダウンロードしてパスを通します。ターミナルが使えるので、普通にターミナルからダウンロードします。なお2022/01/08現在の最新であるJulia-1.7.1を使います。
$ wget https://julialang-s3.julialang.org/bin/linux/x64/1.7/julia-1.7.1-linux-x86_64.tar.gz
$ tar zxvf julia-1.7.1-linux-x86_64.tar.gz
$ echo export PATH="$PATH:/home/studio-lab-user/julia-1.7.1/bin" >> .bashrc
$ source .bashrc
JuliaでJupyterLabを使うためにIJuliaを入れます。
$ julia
julia> ]
(@v1.7) pkg> add IJulia
(@v1.7) pkg> build IJulia
jupyter kernelspec list
をすると、kernelspecにJuliaが入っていることは確認できるのですが、LauncherにJuliaが表示されません。
何が正解なのかいまいちわかりませんが、以下のように新たにcondaの仮想環境を作成してJupyterを導入し、仮想環境下のカーネルにjuliaのカーネルをコピーすると使えるようになりました。
$ conda create --name julia
$ conda activate julia
$ conda install ipykernel
$ cp -rf ~/.local/share/jupyter/kernels/julia-1.7 ~/.conda/envs/julia/share/jupyter/kernels
以下の記事を参考にしています。
成功すると画像のようにJulia環境が追加されます。
Studio LabではGPUも使えます。例としてCUDA.jlとFlux.jlを使い、GPU上で自動微分をしてみます。
問題なく動作することが確認できました。
Discussion