时序预测开源项目TimeMachine的布署教程

时序预测开源项目TimeMachine的布署教程

  • [1. 软硬件环境](#1. 软硬件环境)
  • [2. 前言](#2. 前言)
  • [3. 安装](#3. 安装)
    • [3.1 新建虚拟环境](#3.1 新建虚拟环境)
    • [3.2 安装Pytorch、CUDA](#3.2 安装Pytorch、CUDA)
    • [3.3 安装其他依赖](#3.3 安装其他依赖)
    • [3.4 测试](#3.4 测试)
      • [3.4.1 测试Pytorch是否正常工作](#3.4.1 测试Pytorch是否正常工作)
      • [3.4.2 验证Mamba是否可以正常工作](#3.4.2 验证Mamba是否可以正常工作)
  • [4. 安装方案 B:从源码重新编译 mamba-ssm/causal-conv1d](#4. 安装方案 B:从源码重新编译 mamba-ssm/causal-conv1d)

本教程用于安装时序预测开源项目TimeMachine

1. 软硬件环境

系统:Ubuntu 22.04

显卡:RTX 5090

CPU:Intel® Xeon® Gold 6530

2. 前言

我们在anaconda的虚拟环境中部署,首先需要确定python的版本。这需要从我们的硬件版本、驱动版本和开源项目的时间开始推理。已知我们的显卡为NVIDIA GeForce RTX 5090,项目最早验证版为2024年3月21日,NVIDIA GeForce RTX 5090则于2025年1月7日发布。很明显项目作者使用的不是RTX 5090。此时我们则需要主要考虑硬件的限制。

由显卡型号通过查表------CUDA GPU 计算能力(新)和旧款 CUDA GPU 计算能力可以确定对应的计算能力(CC),可知RTX 5090的CC为12.0。如果你安装了CUDA Toolkit,则可以通过下条命令,获得该CUDA版本支持的CC。

bash 复制代码
nvcc --list-gpu-arch

我们知道CUDA 12.8(2025年1月发布)才开始支持CC 12.0。同时通过下面这条指令获得当前显卡驱动支持的最高版本的CUDA,我们这里的为CUDA Version: 13.0

bash 复制代码
nvidia-smi

因此,可以选择一个支持的最早的版本,即CUDA 12.8。由此可以确定python版本,我们这里为python 10。

3. 安装

3.1 新建虚拟环境

bash 复制代码
conda create -n TM python=3.10
conda activate TM
cd ./Programs/
git clone https://github.com/Atik-Ahamed/TimeMachine.git
cd ./TimeMachine/TimeMachine_supervised/

3.2 安装Pytorch、CUDA

根据CUDA版本查表安装兼容的最老的pytorch版本,以保证尽量与开源项目的兼容性。

bash 复制代码
pip install torch==2.7.0 torchvision==0.22.0 torchaudio==2.7.0 --index-url https://download.pytorch.org/whl/cu128
pip install cuda-toolkit[all]==12.8.0

3.3 安装其他依赖

如果pip找不到自己推断出来的whl文件,pip会自动执行编译程序,但是编译程序需要CUDA nvcc的参与,如果不想安装CUDA nvcc,可以直接指定whl获取路径进行安装,注意搜索的包的文件名跟环境的对应。下面是mamba_ssmcausal_conv1d的直接whl安装方法。

bash 复制代码
pip install https://github.com/state-spaces/mamba/releases/download/v2.3.0/mamba_ssm-2.3.0+cu12torch2.7cxx11abiFALSE-cp310-cp310-linux_x86_64.whl
pip install https://github.com/Dao-AILab/causal-conv1d/releases/download/v1.6.0/causal_conv1d-1.6.0+cu12torch2.7cxx11abiFALSE-cp310-cp310-linux_x86_64.whl

再安装其他库

bash 复制代码
pip install -r requirements.txt

注意requirements.txt被修改了一下,内容如下,以保证兼容性

bash 复制代码
# Install specific versions of PyTorch and related libraries from a custom index URL

# mamba-ssm<=1.2.0
# https://github.com/Dao-AILab/causal-conv1d/releases/download/v1.2.0/causal_conv1d-1.2.0+cu118torch2.1cxx11abiFALSE-cp38-cp38-linux_x86_64.whl
# causal-conv1d==1.2.0
# https://github.com/state-spaces/mamba/releases/download/v1.2.0/mamba_ssm-1.2.0+cu118torch2.1cxx11abiFALSE-cp38-cp38-linux_x86_64.whl

numpy<=1.26.4
matplotlib
pandas
scikit-learn
# torch<=2.2.1
mamba-ssm
causal-conv1d>=1.2.0

3.4 测试

3.4.1 测试Pytorch是否正常工作

torch.cuda.is_available() == True只能说明驱动能用、CUDA runtime 能初始化,但不代表当前这块GPU 的算力架构(sm_xx,Streaming Multiprocessor,流式多处理器)被你安装的PyTorch CUDA 轮子支持。下面定位:确认真正跑CUDA会不会炸

bash 复制代码
python - <<'PY'
import torch
print("torch:", torch.__version__)
print("cuda available:", torch.cuda.is_available())
print("device:", torch.cuda.get_device_name(0))
print("capability:", torch.cuda.get_device_capability(0))
print("arch_list:", torch.cuda.get_arch_list())
x = torch.randn(2,3, device="cuda")
y = x @ x.T
print("cuda matmul ok:", y)
PY

打印如下,说明正常运行

bash 复制代码
torch: 2.7.0+cu128
cuda available: True
device: NVIDIA GeForce RTX 5090
capability: (12, 0)
arch_list: ['sm_75', 'sm_80', 'sm_86', 'sm_90', 'sm_100', 'sm_120', 'compute_120']
cuda matmul ok: tensor([[ 3.7169, -0.4121],
        [-0.4121,  0.8361]], device='cuda:0')

3.4.2 验证Mamba是否可以正常工作

bash 复制代码
python - <<'PY'
import torch
print("torch:", torch.__version__, "cuda:", torch.version.cuda)
from mamba_ssm import Mamba
m = Mamba(d_model=64, d_state=16, d_conv=4, expand=2).cuda()
x = torch.randn(1, 128, 64, device="cuda")
y = m(x)
print("OK:", y.shape)
PY

如下打印说明Mamba可以正常工作

bash 复制代码
torch: 2.7.0+cu128 cuda: 12.8
OK: torch.Size([1, 128, 64])

4. 安装方案 B:从源码重新编译 mamba-ssm/causal-conv1d

这样更灵活,可以不受已经预编译的mamba-ssm/causal-conv1d的版本兼容性限制。在当前 torch 上本地编译,避免 wheel 不匹配。此时CUDA需要从conda中安装,而不是从pip安装。因为pip安装的虽然由nvcc,但是不能执行。

安装cuda-toolkit(注意不是cudatoolkit,有一个下划线的区别),从nvidia的通道安装,anaconda的主通道不包含全部版本。

bash 复制代码
conda install cuda-toolkit=12.8 -c nvidia

验证nvcc是否安装完成

bash 复制代码
nvcc -V

打印如下信息说明安装成功

bash 复制代码
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Fri_Feb_21_20:23:50_PST_2025
Cuda compilation tools, release 12.8, V12.8.93
Build cuda_12.8.r12.8/compiler.35583870_0

再安装其他库

bash 复制代码
pip install -r requirements.txt
相关推荐
智算菩萨1 小时前
多目标超启发式算法系统文献综述:人机协同大语言模型方法论深度精读
论文阅读·人工智能·深度学习·ai·多目标·综述
简单光学2 小时前
ISDM: 基于生成扩散模型的散射介质成像重建技术报告
深度学习·扩散模型·散射成像·分数匹配·随机微分方程
IT阳晨。2 小时前
PyTorch深度学习实践
人工智能·pytorch·深度学习
智算菩萨2 小时前
【How Far Are We From AGI】5 AGI的“道德罗盘“——价值对齐的技术路径与伦理边界
论文阅读·人工智能·深度学习·ai·接口·agi·对齐技术
Sakuraba Ema2 小时前
从零理解 MoE(Mixture of Experts)混合专家:原理、数学、稀疏性、专家数量影响与手写 PyTorch 实现
人工智能·pytorch·python·深度学习·数学·llm·latex
freewlt3 小时前
科技热点速递:AI技术集中爆发
人工智能·深度学习·计算机视觉
Imagination官方博客3 小时前
PowerVR:推动开源 Zink 与 OpenGL ES 支持的发展路径
开源
南宫乘风3 小时前
LLaMA-Factory 给 Qwen1.5 做 LoRA 微调 实战
人工智能·深度学习·llama
Westward-sun.3 小时前
PyTorch入门实战:MNIST手写数字识别(全连接神经网络详解)
人工智能·pytorch·神经网络
小陈phd4 小时前
多模态大模型学习笔记(二十一)—— 基于 Scaling Law方法 的大模型训练算力估算与 GPU 资源配置
笔记·深度学习·学习·自然语言处理·transformer