【发布时间】:2022-12-20 10:12:21
【问题描述】:
我正在尝试生成分子的 DGL 图并将它们存储在 S3 中,以便我可以直接从那里加载它们,而不必每次在 EC2 上使用新实例时都重新生成它们。
根据文档,使用 -DMLC_USE_S3 标志从源代码构建应该允许支持 S3 路径(例如 s3://path_to_data),但即使在从源代码构建之后,错误代码也提示“使用 -DMLC_USE_S3 从源代码构建”。我还尝试使用 -DUSE_S3 标志查看他们的 github。 (https://docs.dgl.ai/en/latest/generated/dgl.load_graphs.html)
错误代码是:
dgl._ffi.base.DGLError: /opt/dgl/third_party/dmlc-core/io.cc:57: Please compile with DMLC_USE_S3=1 to use S3
从源代码构建是按如下方式完成的:
python3 -m venv venv
source venv/bin/activate
git clone --recurse-submodules https://github.com/dmlc/dgl.git
git submodule update --init --recursive
sudo apt-get install -y build-essential python3-dev make cmake
mkdir build
cd build
cmake -DUSE_CUDA=ON -DMLC_USE_S3=1 ..
make -j32
cd ../python
pip install -e dgl
我们还尝试将 cmake 行交换为以下各项,以查看错误代码中的标志是否是问题所在:
cmake -DUSE_CUDA=ON -DMLC_USE_S3=1 ..
cmake -DUSE_CUDA=ON -DMLC_USE_S3=ON ..
cmake -DUSE_CUDA=ON -DUSE_S3=ON ..
还尝试在本地保存文件,然后使用 boto3 发送到 S3。从 S3 读取时无法解码字节串,但这不是首选方法,理想情况下希望从源代码构建工作!
权限是使用 IAM 角色授予的,并且在保存/加载图像文件和 csv 文件时没有问题。
在此先感谢您的帮助!
【问题讨论】:
标签: python amazon-s3 cmake dgl