-
Notifications
You must be signed in to change notification settings - Fork 7
Description
Issue Summary:
ImportError when running train.py inside Apptainer container due to GLIBC dependency issue with nocturne_cpp module and OpenGL.
Detailed Description:
I am encountering an ImportError when running python train.py inside an Apptainer container. The error message is:
Traceback (most recent call last):
File "/home/design/ctrl-sim/train.py", line 3, in
from models.ctrl_sim import CtRLSim
File "/home/design/ctrl-sim/models/init.py", line 1, in
from models.ctrl_sim import CtRLSim
File "/home/design/ctrl-sim/models/ctrl_sim.py", line 5, in
from modules.encoder import Encoder
File "/home/design/ctrl-sim/modules/init.py", line 1, in
from modules.map_encoder import MapEncoder
File "/home/design/ctrl-sim/modules/map_encoder.py", line 4, in
from utils.train_utils import weight_init
File "/home/design/ctrl-sim/utils/init.py", line 17, in
from utils.sim import get_sim
File "/home/design/ctrl-sim/utils/sim.py", line 3, in
import nocturne
File "/home/design/ctrl-sim/nocturne/init.py", line 6, in
from nocturne_cpp import (Action, CollisionType, ObjectType, Object, RoadLine,
ImportError: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /.singularity.d/libs/libGLdispatch.so.0)
This error originates from the nocturne_cpp module, which appears to depend on OpenGL and requires GLIBC 2.34 or a later version. The issue arises specifically when importing the nocturne module, which in turn imports nocturne_cpp.
The nocturne module is part of a larger project, and I am attempting to train a model using the train.py script.
Problem:
The nocturne.sif Apptainer image I am using does not provide a GLIBC version compatible with the libGLdispatch.so.0 library required by nocturne_cpp.
Potential Solutions (and questions):
GPU Dependency: Is the nocturne module (and therefore nocturne_cpp) strictly required for model training? If not, is there a way to disable the OpenGL dependency or provide a CPU-only alternative?
Host Driver Compatibility: If the nocturne module is required, is it a driver issue?
Building a New Image: I understand that I can create a new Apptainer image with a more recent GLIBC version and the necessary dependencies.
Request for Assistance:
Could you confirm if the OpenGL dependency in nocturne_cpp is necessary for all training scenarios, or if there is a CPU-only option?
If OpenGL is necessary, what is the recommended way to ensure GLIBC compatibility within the Apptainer container? Should I use a specific base image, or are there other configuration steps required?
Any suggestions or a sample Singularity.def file to build a compatible Apptainer image would be greatly appreciated.
This focuses more directly on the core problem, which is the nocturne_cpp dependency and the GLIBC version conflict. It also frames the issue as a question of whether the OpenGL dependency is strictly required for training.