diff --git a/.circleci/config.yml b/.circleci/config.yml index 8aa7dc9855b..e0bac2a447d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -481,7 +481,7 @@ jobs: command: docker run -t --gpus all -v $PWD:$PWD -w $PWD -e UPLOAD_CHANNEL -e CU_VERSION "${image_name}" .circleci/unittest/linux_stable/scripts/install.sh - run: name: Run tests - command: docker run --env-file ./env.list -t --gpus all -v $PWD:$PWD -w $PWD "${image_name}" .circleci/unittest/linux_stable/scripts/run_test.sh + command: docker run -t --gpus all -v $PWD:$PWD -w $PWD "${image_name}" .circleci/unittest/linux_stable/scripts/run_test.sh - run: name: Post Process command: docker run -t --gpus all -v $PWD:$PWD -w $PWD "${image_name}" .circleci/unittest/linux_stable/scripts/post_process.sh @@ -656,30 +656,30 @@ workflows: unittest: jobs: - - unittest_macos_cpu: - cu_version: cpu - name: unittest_macos_cpu_py3.7 - python_version: '3.7' - - unittest_linux_cpu: - cu_version: cpu - name: unittest_linux_cpu_py3.7 - python_version: '3.7' - - unittest_linux_gpu: - cu_version: cu113 - name: unittest_linux_gpu_py3.7 - python_version: '3.7' - - unittest_linux_optdeps_gpu: - cu_version: cu113 - name: unittest_linux_optdeps_gpu_py3.7 - python_version: '3.7' - - unittest_linux_stable_cpu: - cu_version: cpu - name: unittest_linux_stable_cpu_py3.7 - python_version: '3.7' - - unittest_linux_stable_gpu: - cu_version: cu113 - name: unittest_linux_stable_gpu_py3.7 - python_version: '3.7' +# - unittest_macos_cpu: +# cu_version: cpu +# name: unittest_macos_cpu_py3.7 +# python_version: '3.7' +# - unittest_linux_cpu: +# cu_version: cpu +# name: unittest_linux_cpu_py3.7 +# python_version: '3.7' +# - unittest_linux_gpu: +# cu_version: cu113 +# name: unittest_linux_gpu_py3.7 +# python_version: '3.7' +# - unittest_linux_optdeps_gpu: +# cu_version: cu113 +# name: unittest_linux_optdeps_gpu_py3.7 +# python_version: '3.7' +# - unittest_linux_stable_cpu: +# cu_version: cpu +# name: unittest_linux_stable_cpu_py3.7 +# python_version: '3.7' +# - unittest_linux_stable_gpu: +# cu_version: cu113 +# name: unittest_linux_stable_gpu_py3.7 +# python_version: '3.7' - unittest_macos_cpu: cu_version: cpu @@ -706,52 +706,52 @@ workflows: name: unittest_linux_stable_gpu_py3.8 python_version: '3.8' - - unittest_macos_cpu: - cu_version: cpu - name: unittest_macos_cpu_py3.9 - python_version: '3.9' - - unittest_linux_cpu: - cu_version: cpu - name: unittest_linux_cpu_py3.9 - python_version: '3.9' - - unittest_linux_gpu: - cu_version: cu113 - name: unittest_linux_gpu_py3.9 - python_version: '3.9' - - unittest_linux_optdeps_gpu: - cu_version: cu113 - name: unittest_linux_optdeps_gpu_py3.9 - python_version: '3.9' - - unittest_linux_stable_cpu: - cu_version: cpu - name: unittest_linux_stable_cpu_py3.9 - python_version: '3.9' - - unittest_linux_stable_gpu: - cu_version: cu113 - name: unittest_linux_stable_gpu_py3.9 - python_version: '3.9' - - - unittest_macos_cpu: - cu_version: cpu - name: unittest_macos_cpu_py3.10 - python_version: '3.10' - - unittest_linux_cpu: - cu_version: cpu - name: unittest_linux_cpu_py3.10 - python_version: '3.10' - - unittest_linux_gpu: - cu_version: cu113 - name: unittest_linux_gpu_py3.10 - python_version: '3.10' - - unittest_linux_optdeps_gpu: - cu_version: cu113 - name: unittest_linux_optdeps_gpu_py3.10 - python_version: '3.10' - - unittest_linux_stable_cpu: - cu_version: cpu - name: unittest_linux_stable_cpu_py3.10 - python_version: '3.10' - - unittest_linux_stable_gpu: - cu_version: cu113 - name: unittest_linux_stable_gpu_py3.10 - python_version: '3.10' +# - unittest_macos_cpu: +# cu_version: cpu +# name: unittest_macos_cpu_py3.9 +# python_version: '3.9' +# - unittest_linux_cpu: +# cu_version: cpu +# name: unittest_linux_cpu_py3.9 +# python_version: '3.9' +# - unittest_linux_gpu: +# cu_version: cu113 +# name: unittest_linux_gpu_py3.9 +# python_version: '3.9' +# - unittest_linux_optdeps_gpu: +# cu_version: cu113 +# name: unittest_linux_optdeps_gpu_py3.9 +# python_version: '3.9' +# - unittest_linux_stable_cpu: +# cu_version: cpu +# name: unittest_linux_stable_cpu_py3.9 +# python_version: '3.9' +# - unittest_linux_stable_gpu: +# cu_version: cu113 +# name: unittest_linux_stable_gpu_py3.9 +# python_version: '3.9' +# +# - unittest_macos_cpu: +# cu_version: cpu +# name: unittest_macos_cpu_py3.10 +# python_version: '3.10' +# - unittest_linux_cpu: +# cu_version: cpu +# name: unittest_linux_cpu_py3.10 +# python_version: '3.10' +# - unittest_linux_gpu: +# cu_version: cu113 +# name: unittest_linux_gpu_py3.10 +# python_version: '3.10' +# - unittest_linux_optdeps_gpu: +# cu_version: cu113 +# name: unittest_linux_optdeps_gpu_py3.10 +# python_version: '3.10' +# - unittest_linux_stable_cpu: +# cu_version: cpu +# name: unittest_linux_stable_cpu_py3.10 +# python_version: '3.10' +# - unittest_linux_stable_gpu: +# cu_version: cu113 +# name: unittest_linux_stable_gpu_py3.10 +# python_version: '3.10' diff --git a/.circleci/unittest/linux/scripts/run_test.sh b/.circleci/unittest/linux/scripts/run_test.sh index fea33f15774..58bbf48f8df 100755 --- a/.circleci/unittest/linux/scripts/run_test.sh +++ b/.circleci/unittest/linux/scripts/run_test.sh @@ -5,6 +5,12 @@ set -e eval "$(./conda/bin/conda shell.bash hook)" conda activate ./env +pip3 install pyrender +pip3 install pyopengl --upgrade + +export MUJOCO_GL=egl +export PYOPENGL_PLATFORM=egl + export PYTORCH_TEST_WITH_SLOW='1' python -m torch.utils.collect_env # Avoid error: "fatal: unsafe repository" diff --git a/.circleci/unittest/linux/scripts/setup_env.sh b/.circleci/unittest/linux/scripts/setup_env.sh index b0cf2b465b1..ffedc260e58 100755 --- a/.circleci/unittest/linux/scripts/setup_env.sh +++ b/.circleci/unittest/linux/scripts/setup_env.sh @@ -56,17 +56,25 @@ cat "${this_dir}/environment.yml" if [[ $OSTYPE == 'darwin'* ]]; then PRIVATE_MUJOCO_GL=glfw else - conda install -y -c conda-forge mesa - conda install -y -c conda-forge mesalib - PRIVATE_MUJOCO_GL=osmesa + PRIVATE_MUJOCO_GL=egl fi export MUJOCO_GL=$PRIVATE_MUJOCO_GL conda env config vars set MUJOCO_PY_MUJOCO_PATH=$root_dir/.mujoco/mujoco210 \ DISPLAY=unix:0.0 \ MJLIB_PATH=$root_dir/.mujoco/mujoco-2.1.1/lib/libmujoco.so.2.1.1 \ - LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$root_dir/.mujoco/mujoco210/bin \ + LD_LIBRARY_PATH=$root_dir/.mujoco/mujoco210/bin \ SDL_VIDEODRIVER=dummy \ - MUJOCO_GL=$PRIVATE_MUJOCO_GL + MUJOCO_GL=$PRIVATE_MUJOCO_GL\ + PYOPENGL_PLATFORM=egl + +# Software rendering requires GLX and OSMesa. +if [[ $MUJOCO_GL == 'egl' ]]; then + yum makecache + yum install -y glfw + yum install -y glew + yum install -y mesa-libGL + yum install -y mesa-libOSMesa-devel +fi conda env update --file "${this_dir}/environment.yml" --prune diff --git a/.circleci/unittest/linux_stable/scripts/install.sh b/.circleci/unittest/linux_stable/scripts/install.sh index 0c0e3c9f0b6..717af1fa839 100755 --- a/.circleci/unittest/linux_stable/scripts/install.sh +++ b/.circleci/unittest/linux_stable/scripts/install.sh @@ -1,5 +1,6 @@ #!/usr/bin/env bash + unset PYTORCH_VERSION # For unittest, nightly PyTorch is used as the following section, # so no need to set PYTORCH_VERSION. @@ -10,6 +11,9 @@ set -e eval "$(./conda/bin/conda shell.bash hook)" conda activate ./env +echo "--> Check env" +printenv + if [ "${CU_VERSION:-}" == cpu ] ; then cudatoolkit="cpuonly" version="cpu" diff --git a/.circleci/unittest/linux_stable/scripts/run_test.sh b/.circleci/unittest/linux_stable/scripts/run_test.sh index fea33f15774..2a98092eb84 100755 --- a/.circleci/unittest/linux_stable/scripts/run_test.sh +++ b/.circleci/unittest/linux_stable/scripts/run_test.sh @@ -5,6 +5,15 @@ set -e eval "$(./conda/bin/conda shell.bash hook)" conda activate ./env +pip3 install pyrender +pip3 install pyopengl --upgrade + +export MUJOCO_GL=egl +export PYOPENGL_PLATFORM=egl +export __GL_SHADER_DISK_CACHE=0 +export __GL_SHADER_DISK_CACHE_PATH=/tmp +printf "DISPLAY:$DISPLAY-->\n" + export PYTORCH_TEST_WITH_SLOW='1' python -m torch.utils.collect_env # Avoid error: "fatal: unsafe repository" @@ -16,7 +25,10 @@ lib_dir="${env_dir}/lib" # solves ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$lib_dir +printf "LD_LIBRARY_PATH:$LD_LIBRARY_PATH-->\n" export MKL_THREADING_LAYER=GNU +export PATH=/home/circleci/project/env/bin:/home/circleci/project/conda/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +printenv pytest test/smoke_test.py -v --durations 20 pytest test/smoke_test_deps.py -v --durations 20 diff --git a/.circleci/unittest/linux_stable/scripts/setup_env.sh b/.circleci/unittest/linux_stable/scripts/setup_env.sh index c9c6e45acc2..3764c58d65e 100755 --- a/.circleci/unittest/linux_stable/scripts/setup_env.sh +++ b/.circleci/unittest/linux_stable/scripts/setup_env.sh @@ -57,17 +57,26 @@ cat "${this_dir}/environment.yml" if [[ $OSTYPE == 'darwin'* ]]; then PRIVATE_MUJOCO_GL=glfw else - conda install -y -c conda-forge mesa - conda install -y -c conda-forge mesalib - PRIVATE_MUJOCO_GL=osmesa + PRIVATE_MUJOCO_GL=egl fi export MUJOCO_GL=$PRIVATE_MUJOCO_GL conda env config vars set MUJOCO_PY_MUJOCO_PATH=$root_dir/.mujoco/mujoco210 \ DISPLAY=unix:0.0 \ MJLIB_PATH=$root_dir/.mujoco/mujoco-2.1.1/lib/libmujoco.so.2.1.1 \ - LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$root_dir/.mujoco/mujoco210/bin \ + LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$root_dir/.mujoco/mujoco210/bin:${root_dir}/conda/lib \ SDL_VIDEODRIVER=dummy \ - MUJOCO_GL=$PRIVATE_MUJOCO_GL + MUJOCO_GL=$PRIVATE_MUJOCO_GL \ + PYOPENGL_PLATFORM=egl + +# Software rendering requires GLX and OSMesa. +if [[ $MUJOCO_GL == 'egl' ]]; then + yum makecache + yum update -y + yum install -y glfw + yum install -y glew + yum install -y mesa-libGL + yum install -y mesa-libOSMesa-devel +fi conda env update --file "${this_dir}/environment.yml" --prune