質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.34%
Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Q&A

1回答

236閲覧

google colab

mozku

総合スコア0

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

0グッド

0クリップ

投稿2024/12/12 07:58

実現したいこと

google colabでblenderのレンダリングを実現させたい

発生している問題・分からないこと

os.environ["LD_PRELOAD"] = ""この意味と何をどのように入力すればいいのかわかりません。

該当のソースコード

import os os.environ["LD_PRELOAD"] = "" !apt update !apt remove libtcmalloc-minimal4 !apt install libtcmalloc-minimal4 os.environ["LD_PRELOAD"] = "/usr/lib/x86_64-linux-gnu/libtcmalloc_minimal.so.4.3.0" !echo $LD_PRELOAD
Get:1 https://cloud.r-project.org/bin/linux/ubuntu jammy-cran40/ InRelease [3,626 B] Get:2 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64 InRelease [1,581 B] Get:3 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64 Packages [1,196 kB] Get:4 http://security.ubuntu.com/ubuntu jammy-security InRelease [129 kB] Get:5 https://r2u.stat.illinois.edu/ubuntu jammy InRelease [6,555 B] Get:6 https://r2u.stat.illinois.edu/ubuntu jammy/main all Packages [8,543 kB] Hit:7 https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu jammy InRelease Hit:8 https://ppa.launchpadcontent.net/graphics-drivers/ppa/ubuntu jammy InRelease Hit:9 https://ppa.launchpadcontent.net/ubuntugis/ppa/ubuntu jammy InRelease Get:10 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages [2,458 kB] Get:11 https://r2u.stat.illinois.edu/ubuntu jammy/main amd64 Packages [2,626 kB] Get:12 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 Packages [1,226 kB] Hit:13 http://archive.ubuntu.com/ubuntu jammy InRelease Get:14 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [128 kB] Get:15 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [127 kB] Get:16 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages [1,516 kB] Get:17 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [2,753 kB] Get:18 http://archive.ubuntu.com/ubuntu jammy-updates/restricted amd64 Packages [3,475 kB] Fetched 24.2 MB in 11s (2,257 kB/s) Reading package lists... Done Building dependency tree... Done Reading state information... Done 58 packages can be upgraded. Run 'apt list --upgradable' to see them. W: Skipping acquire of configured file 'main/source/Sources' as repository 'https://r2u.stat.illinois.edu/ubuntu jammy InRelease' does not seem to provide it (sources.list entry misspelt?) Reading package lists... Done Building dependency tree... Done Reading state information... Done The following packages will be REMOVED: google-perftools libgoogle-perftools4 libtcmalloc-minimal4 0 upgraded, 0 newly installed, 3 to remove and 58 not upgraded. After this operation, 1,817 kB disk space will be freed. (Reading database ... 123633 files and directories currently installed.) Removing google-perftools (2.9.1-0ubuntu3) ... Removing libgoogle-perftools4:amd64 (2.9.1-0ubuntu3) ... Removing libtcmalloc-minimal4:amd64 (2.9.1-0ubuntu3) ... Processing triggers for man-db (2.10.2-1) ... Processing triggers for libc-bin (2.35-0ubuntu3.4) ... /sbin/ldconfig.real: /usr/local/lib/libtbbmalloc_proxy.so.2 is not a symbolic link /sbin/ldconfig.real: /usr/local/lib/libhwloc.so.15 is not a symbolic link /sbin/ldconfig.real: /usr/local/lib/libtbb.so.12 is not a symbolic link /sbin/ldconfig.real: /usr/local/lib/libur_adapter_level_zero.so.0 is not a symbolic link /sbin/ldconfig.real: /usr/local/lib/libur_loader.so.0 is not a symbolic link /sbin/ldconfig.real: /usr/local/lib/libumf.so.0 is not a symbolic link /sbin/ldconfig.real: /usr/local/lib/libtcm_debug.so.1 is not a symbolic link /sbin/ldconfig.real: /usr/local/lib/libtcm.so.1 is not a symbolic link /sbin/ldconfig.real: /usr/local/lib/libur_adapter_opencl.so.0 is not a symbolic link /sbin/ldconfig.real: /usr/local/lib/libtbbbind_2_0.so.3 is not a symbolic link /sbin/ldconfig.real: /usr/local/lib/libtbbmalloc.so.2 is not a symbolic link /sbin/ldconfig.real: /usr/local/lib/libtbbbind_2_5.so.3 is not a symbolic link /sbin/ldconfig.real: /usr/local/lib/libtbbbind.so.3 is not a symbolic link Reading package lists... Done Building dependency tree... Done Reading state information... Done The following NEW packages will be installed: libtcmalloc-minimal4 0 upgraded, 1 newly installed, 0 to remove and 58 not upgraded. Need to get 98.2 kB of archives. After this operation, 382 kB of additional disk space will be used. Get:1 http://archive.ubuntu.com/ubuntu jammy/main amd64 libtcmalloc-minimal4 amd64 2.9.1-0ubuntu3 [98.2 kB] Fetched 98.2 kB in 9s (11.2 kB/s) Selecting previously unselected package libtcmalloc-minimal4:amd64. (Reading database ... 123608 files and directories currently installed.) Preparing to unpack .../libtcmalloc-minimal4_2.9.1-0ubuntu3_amd64.deb ... Unpacking libtcmalloc-minimal4:amd64 (2.9.1-0ubuntu3) ... Setting up libtcmalloc-minimal4:amd64 (2.9.1-0ubuntu3) ... Processing triggers for libc-bin (2.35-0ubuntu3.4) ... /sbin/ldconfig.real: /usr/local/lib/libtbbmalloc_proxy.so.2 is not a symbolic link /sbin/ldconfig.real: /usr/local/lib/libhwloc.so.15 is not a symbolic link /sbin/ldconfig.real: /usr/local/lib/libtbb.so.12 is not a symbolic link /sbin/ldconfig.real: /usr/local/lib/libur_adapter_level_zero.so.0 is not a symbolic link /sbin/ldconfig.real: /usr/local/lib/libur_loader.so.0 is not a symbolic link /sbin/ldconfig.real: /usr/local/lib/libumf.so.0 is not a symbolic link /sbin/ldconfig.real: /usr/local/lib/libtcm_debug.so.1 is not a symbolic link /sbin/ldconfig.real: /usr/local/lib/libtcm.so.1 is not a symbolic link /sbin/ldconfig.real: /usr/local/lib/libur_adapter_opencl.so.0 is not a symbolic link /sbin/ldconfig.real: /usr/local/lib/libtbbbind_2_0.so.3 is not a symbolic link /sbin/ldconfig.real: /usr/local/lib/libtbbmalloc.so.2 is not a symbolic link /sbin/ldconfig.real: /usr/local/lib/libtbbbind_2_5.so.3 is not a symbolic link /sbin/ldconfig.real: /usr/local/lib/libtbbbind.so.3 is not a symbolic link ERROR: ld.so: object '/usr/lib/x86_64-linux-gnu/libtcmalloc_minimal.so.4.3.0' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored. /usr/lib/x86_64-linux-gnu/libtcmalloc_minimal.so.4.3.0

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

https://harkerhack.com/blender-rendered-in-coraboratory/
このリンクの内容を参考にしています。

補足

プログラミング初心者ですので簡単に説明していただけると助かります...

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fiveHundred

2024/12/12 09:39

組んだ本人にしか意図は分からないので、知りたいなら直接聞くべきでしょう。 ただ、「os.environ["LD_PRELOAD"] = "/usr/lib/x86_64-linux-gnu/libtcmalloc_minimal.so.4.3.0"」ですぐに上書きされているので、空白のままで実行すればいいような気もします。
bsdfan

2024/12/12 13:29

記事がそこそこ古いのでインストールされるファイルのバージョンが変わっているのではないでしょうか。 !ls /usr/lib/x86_64-linux-gnu とかしてみて、/usr/lib/x86_64-linux-gnu/libtcmalloc_minimal.so.4.3.0 の 4.3.0 の部分が実際にはいくつのものがインストールされているか確認してみてはどうでしょう。
guest

回答1

0

この手順の目的(推測)

今も有効なのかは把握していませんが、GPUを有効にしたcolab上でblenderを動かすために必要なテクニックだったはずです。
参考: https://blender.stackexchange.com/questions/149655/blender-on-google-colab-not-finding-graphics-card/150108#150108

LD_PRELOADは何をするものか?

※興味がなければ読み飛ばしてください。

一般的な話をするとLD_PRELOADは「プログラムを実行する際に、この環境変数で示されたsoライブラリを優先してシンボルを解決せよ」ということができてしまう、なかなかに強力だし凶悪な仕組みです。

このLD_PRELOADで実現していること

この手順では

  1. CUDAが参照しているtcmallocとcolabがデフォルトで提供しているtcmallocのバージョンが異なる
  2. CUDAを利用しようとして失敗する
  3. blenderがGPUを認識しない

という問題を解消するために、新しくインストールしたtcmallocを強制的に参照させるのが目的のようですね。
もうColab内のUbuntuもCUDAもバージョンアップしているので問題ない気もしますが(確認はしてません)、念のためやっているのだと思います。

blenderが動かない理由

エラーの原因ですが、notebookが古いのでibtcmalloc_minimalのバージョンが古くなっていて、そんなファイルが存在しないのが原因です。
bsdfanさんがコメントされている通り、libtcmalloc_minimalのバージョン違うため、「そんなファイルはない」と怒られているのです。

LD_PRELOADに指定したファイルがない場合はプログラムは起動することができません。

回避策1

libtcmalloc-minimal4_2.9.1-0ubuntu3_amd64.debをインストールしているようですので、
pkgs.orgで確認する限り、/usr/lib/x86_64-linux-gnu/libtcmalloc_minimal.so.4.5.9がLD_PRELOADに指定する正しいファイル名になるのだと思います。
試してみてください。

python

1os.environ["LD_PRELOAD"] = "/usr/lib/x86_64-linux-gnu/libtcmalloc_minimal.so.4.5.9"

回避策2

上で書いたとおり「もう書かなくても良い手順の可能性がある」ため、fiveHundredさんが書かれている通り、LD_PRELOADへの値の設定をしなくても動く可能性があります。

python

1os.environ["LD_PRELOAD"] = "/usr/lib/x86_64-linux-gnu/libtcmalloc_minimal.so.4.3.0"

この部分をまるごとコメントアウトして動くか確認してみるのも手だと思います。
こんな感じです。

python

1# os.environ["LD_PRELOAD"] = "/usr/lib/x86_64-linux-gnu/libtcmalloc_minimal.so.4.3.0"

どちらかで解決できれば良いのですが、駄目だったらコメントしてください。

投稿2024/12/12 16:46

toge_

総合スコア280

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mozku

2024/12/17 07:37

実行結果にエラーが出なくなりました!ありがとうございました。
toge_

2024/12/17 17:48

解決おめでとうございます! 先に進めたようなので良かったです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.34%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問