FROM --platform=linux/arm64 nvidia/cuda:12.8.1-cudnn-runtime-ubuntu22.04 ARG TARGETARCH RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install --yes --no-install-recommends python3 python3-pip \ && rm -rf /var/lib/apt/lists/* \ && python3 -m pip install --no-cache-dir --upgrade pip \ && python3 -m pip install --no-cache-dir \ --index-url https://download.pytorch.org/whl/cu128 \ --extra-index-url https://pypi.org/simple \ torch==2.7.1+cu128 numpy # Fail the ARM64 image build if it selected an incompatible interpreter or PyTorch wheel. RUN test "$TARGETARCH" = arm64 \ && python3 -c "import platform, torch; assert platform.machine() == 'aarch64'; assert torch.version.cuda == '12.8'; print(f'{platform.machine()} torch={torch.__version__} cuda={torch.version.cuda}')" WORKDIR /opt/gpu-feature COPY gpu_feature_engine_v1.py /opt/gpu-feature/gpu_feature_engine_v1.py COPY gpu_batch01_v1_1_runner.py gpu_feature_parity_contract_v1_1.py /opt/gpu-feature/ COPY control_plane/trading_studio/indicators/historical_band_channel.py /opt/gpu-feature/control_plane/trading_studio/indicators/historical_band_channel.py # Oracle and market data are intentionally supplied as read-only runtime mounts. ENV PYTHONUNBUFFERED=1 \ CUDA_DEVICE_ORDER=PCI_BUS_ID \ GPU_FEATURE_DATA_CSV=/data/binance_btcusdt_spot_2m_180d.csv \ GPU_FEATURE_ORACLE_NPZ=/oracle/batch01_oracle_outputs.npz \ GPU_FEATURE_REQUEST_JSON=/oracle/batch01_oracle_request.json \ GPU_FEATURE_CACHE_DIR=/cache ENTRYPOINT ["python3", "/opt/gpu-feature/gpu_feature_engine_v1.py"] CMD ["--mode", "smoke"]