PyTorch-CUDA基础镜像性能 benchmark 对比测试

部署运行你感兴趣的模型镜像

PyTorch-CUDA基础镜像性能 benchmark 对比测试

在深度学习的黄金时代,你有没有经历过这样的“经典时刻”? 😅
刚跑通一篇顶会论文代码,兴奋地准备复现结果——结果 ImportError: libcudart.so.11.8 not found 一巴掌拍脸上。
重装环境?三天过去了,conda 还在解依赖……🤯

别慌,这不怪你。
真正的问题在于:我们不该把时间浪费在“让代码跑起来”这件事上。而应该专注于“让模型更强”。

于是,容器化 + 预集成环境成了救星——尤其是那个名字听起来平平无奇、实则暗藏乾坤的 PyTorch-CUDA 基础镜像


现在打开 Docker Hub 或 NGC,你会发现满屏都是类似 pytorch/pytorch:2.1.0-cuda11.8-cudnn8-runtime 的标签。它们长得差不多,但真的一样吗?🚀
哪个更快?更稳?更适合你的 A100 集群 or RTX 4090 小钢炮?

今天我们就来动真格的:不做花架子,只看硬指标。从底层原理到实测表现,带你穿透这些镜像的“皮肤”,看看谁才是真正的性能王者 💪。


先问个扎心问题:为什么非要用 PyTorch-CUDA 镜像?我自己 pip install 不行吗?

当然可以……如果你不怕掉头发的话 😬。

手动配置的坑太多了:
- PyTorch 版本和 CUDA Toolkit 对不上 → 直接段错误;
- cuDNN 没装对版本 → 卷积慢得像爬;
- 多卡训练时 NCCL 报错 → 分布式变成“分崩离析”。

而一个靠谱的基础镜像,等于给你打包好了整条“AI加速流水线”:

✅ 已编译好的 PyTorch(带 CUDA 支持)
✅ 匹配的 cuDNN、NCCL、cuBLAS 等底层库
✅ 开箱即用的 GPU 调度能力
✅ 经过 NVIDIA 官方验证的兼容性组合

一句话总结:它不是省了你几条命令,而是帮你避开了整个雷区地图 🧨。


那这个“流水线”到底是怎么转起来的?咱们一层层拆开看。

PyTorch:动态图的魅力与代价

PyTorch 之所以能火出圈,核心就是它的 动态计算图(Dynamic Computation Graph)。你可以像写普通 Python 一样调试模型,print、pdb 随便上,再也不用“写完一整张图才能知道错在哪”。

import torch
import torch.nn as nn

class SimpleCNN(nn.Module):
    def __init__(self):
        super().__init__()
        self.conv = nn.Conv2d(3, 16, kernel_size=3)
        self.relu = nn.ReLU()
        self.pool = nn.MaxPool2d(2)
        self.fc = nn.Linear(16 * 15 * 15, 10)

    def forward(self, x):
        x = self.pool(self.relu(self.conv(x)))
        x = x.view(x.size(0), -1)
        x = self.fc(x)
        return x

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = SimpleCNN().to(device)

这段代码看着简单,但背后发生了什么?

当你调用 model(inputs) 时,PyTorch 不只是做前向传播,还会悄悄构建一张“操作记录图”,为后续反向传播自动求导做准备。这一切都靠 autograd 引擎完成。

而关键来了:这些操作最终都要翻译成 GPU 指令。怎么翻译?靠的就是 CUDA。


CUDA:GPU 并行计算的“操作系统”

CUDA 是啥?你可以把它理解为 GPU 的“操作系统”。没有它,PyTorch 再聪明也指挥不动那些成千上万的 CUDA 核心。

比如这句:

output = torch.matmul(A, B)  # 矩阵乘法

表面看是 PyTorch 的 API,实际上内部会调用 cuBLAS 库中的 cublasGemmEx 函数,在 GPU 上并行执行数十亿次浮点运算。

再比如卷积:

x = nn.Conv2d(3, 64, 3)(input)

这不是简单的滑动窗口,而是由 cuDNN 提供高度优化的实现,可能用了 Winograd 算法 or Implicit GEMM,速度比手写 CUDA kernel 还快!

所以你看,PyTorch 只是“前台演员”,真正干活的是背后的 CUDA 生态三巨头:

组件作用
CUDA Runtime管理内存分配、核函数启动、设备通信
cuDNN加速卷积、归一化、激活等常见 DNN 操作
NCCL实现多 GPU/多节点间的高效通信(AllReduce、Broadcast)

这三个家伙配合得好不好,直接决定了你的训练速度是“飞起来”还是“卡成PPT”。


如何判断你的镜像是否“血脉纯正”?

别光听标签吹,动手验一验才踏实。

下面这条命令,应该成为你每次进容器后的第一件事 👇:

nvidia-smi

输出长这样:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 535.129.03   Driver Version: 535.129.03   CUDA Version: 12.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  NVIDIA A100-SXM...  On   | 00000000:00:1B.0 Off |                    0 |
| N/A   35C    P0    58W / 400W |   1024MiB / 40960MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

重点关注三个信息:
- Driver Version:驱动支持的最高 CUDA 版本不能低于镜像里的;
- CUDA Version:这是系统层面支持的 CUDA 运行时版本;
- Memory Usage:显存有没有被正确识别?

接着检查 PyTorch 是否真的“连上了”GPU:

import torch
print("CUDA Available:", torch.cuda.is_available())           # 应为 True
print("CUDA Version (linked):", torch.version.cuda)           # 如 11.8
print("GPU Count:", torch.cuda.device_count())                # 多卡场景下要看清
print("Device Name:", torch.cuda.get_device_name(0))          # 看是不是你期望的卡

如果这里显示 False,或者版本对不上?那恭喜你,踩进最常见的兼容性陷阱了 ❌。


cuDNN:卷积加速的“隐形冠军”

很多人忽视 cuDNN,但它其实是影响训练速度的关键变量之一。

举个例子:ResNet-50 训练中,超过 70% 的时间花在卷积层。而 cuDNN 正是专门为此优化的库。

它做了哪些黑科技?

🧠 自动算法选择:同一个卷积操作,cuDNN 提供多种实现方式(FFT、Winograd、Direct),运行时根据输入尺寸自动选最快的。

💾 内存池机制:避免频繁 malloc/free 显存,减少延迟。

低精度支持:FP16/BF16 + Tensor Cores,算得更快还省显存。

想开启这些特性?两行就够了:

torch.backends.cudnn.benchmark = True      # 自动搜最优算法(适合固定输入)
torch.backends.cudnn.deterministic = False # 允许非确定性算法换性能

不过注意:首次运行会有“预热”过程,因为要试不同算法。之后就会快得飞起 ✈️。

更进一步,搭配混合精度训练,效果炸裂:

scaler = torch.cuda.amp.GradScaler()

with torch.cuda.amp.autocast():
    output = model(data)
    loss = criterion(output, target)

scaler.scale(loss).backward()
scaler.step(optimizer)
scaler.update()

这套组合拳下来,Ampere 架构及以上 GPU 的利用率轻松拉满,显存占用还能降一半!🔥


实际应用场景:从单卡实验到分布式训练

假设你在搞图像分类项目,流程大概是这样的:

1. 拉取镜像(推荐官方版)
docker pull pytorch/pytorch:2.1.0-cuda11.8-cudnn8-runtime

⚠️ 注意区分 develruntime
- devel:含编译工具(gcc/cmake),适合开发调试;
- runtime:轻量级,生产部署首选!

2. 启动容器并挂载资源
docker run --gpus all \
  -v $(pwd):/workspace \
  -w /workspace \
  --rm -it \
  pytorch/pytorch:2.1.0-cuda11.8-cudnn8-runtime bash

关键参数说明:
- --gpus all:暴露所有 GPU(需安装 nvidia-container-toolkit)
- -v:挂载当前目录,代码修改实时生效
- --rm:退出自动清理,干净利落

3. 跑训练脚本
python train.py --batch-size 64 --epochs 100 --lr 0.01
4. 监控训练状态
tensorboard --logdir=runs --host=0.0.0.0 --port=6006

浏览器访问宿主机 IP:6006,实时看 loss 曲线、准确率变化,爽歪歪~

5. 模型保存与导出
torch.save(model.state_dict(), "best.pth")  # 保存权重
torch.jit.script(model).save("traced_model.pt")  # 导出 TorchScript 用于 C++ 部署

整个流程丝滑流畅,没有任何“环境适配”的卡顿感 —— 这就是标准化的力量 💯。


常见痛点 & 解决方案一览表

痛点镜像解决方案
“在我机器上好好的”团队共用同一镜像 tag,彻底消灭环境漂移
版本冲突导致崩溃官方镜像已通过严格测试,确保 PyTorch+CUDA+cudNN 三者匹配
分布式训练配置复杂预装 NCCL、支持 torchrun,一行命令启动多进程
推理部署环境不一致可基于 runtime 镜像构建更小的推理镜像,无缝衔接

特别是最后一点,MLOps 流水线里特别实用。CI/CD 中可以直接用同一个基础镜像做训练和推理封装,保证端到端一致性。


设计建议:如何用好这类镜像?

别以为拉个镜像就万事大吉了,有些坑还得避开:

🔧 选对标签:看清是 devel 还是 runtime,生产环境别用前者,体积大还容易引入不必要的依赖。

📦 控制体积:不要在基础镜像里乱装软件。必要功能可以通过 FROM 构建自定义镜像:

FROM pytorch/pytorch:2.1.0-cuda11.8-cudnn8-runtime
RUN pip install wandb tensorboardX  # 只加你需要的

💾 持久化存储:检查点、日志一定要挂载到外部存储,否则容器一删,训练成果全没了!

🛡️ 安全更新:定期更新镜像版本,获取最新的漏洞修复和性能补丁。别让旧镜像拖累集群稳定性。

📊 资源限制:在多用户环境中,记得用 --memory, --cpus 控制容器资源使用,防止“一人大哥吃独食”。


总结:为什么说它是 AI 工程化的基石?

PyTorch-CUDA 基础镜像的价值,早已超出“技术工具”的范畴。

它代表了一种 工程范式的转变

过去:每个人自己搭环境 → 效率低、难复现、难协作
现在:统一镜像标准 → 快速迭代、结果可复现、团队协同无障碍

它带来的不仅是“几分钟就能跑起 ResNet”的便利,更是整个 AI 研发流程的工业化升级。

就像当年 Linux 容器改变了后端开发一样,PyTorch-CUDA 镜像正在重塑 AI 开发体验。


所以,下次当你又要开始新项目时,不妨先停下来问一句:

“我是不是又在重复造轮子?”

也许答案很简单:
👉 docker pull,然后 start coding

毕竟,我们的目标不是配置环境,而是改变世界 🌍✨。

您可能感兴趣的与本文相关的镜像

PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

copying mmcv/ops/csrc/parrots/min_area_polygons_pytorch.h -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/modulated_deform_conv.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/modulated_deform_conv_parrots.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/modulated_deform_conv_pytorch.h -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/ms_deform_attn.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/ms_deform_attn_parrots.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/nms.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/nms_parrots.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/nms_pytorch.h -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/nms_rotated.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/pixel_group.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/pixel_group_parrots.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/pixel_group_pytorch.h -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/points_in_boxes.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/points_in_boxes_parrots.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/points_in_boxes_pytorch.h -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/points_in_polygons.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/points_in_polygons_parrots.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/points_in_polygons_pytorch.h -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/psamask.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/psamask_parrots.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/psamask_pytorch.h -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/riroi_align_rotated.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/riroi_align_rotated_parrots.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/riroi_align_rotated_pytorch.h -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/roi_align.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/roi_align_parrots.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/roi_align_pytorch.h -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/roi_align_rotated.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/roi_align_rotated_parrots.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/roi_align_rotated_pytorch.h -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/roi_pool.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/roi_pool_parrots.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/roi_pool_pytorch.h -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/roiaware_pool3d.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/roiaware_pool3d_parrots.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/roiaware_pool3d_pytorch.h -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/roipoint_pool3d.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/roipoint_pool3d_parrots.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/roipoint_pool3d_pytorch.h -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/rotated_feature_align.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/rotated_feature_align_parrots.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/rotated_feature_align_pytorch.h -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/sync_bn.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/sync_bn_parrots.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/sync_bn_pytorch.h -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/three_interpolate.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/three_interpolate_parrots.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/three_interpolate_pytorch.h -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/three_nn.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/three_nn_parrots.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/three_nn_pytorch.h -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/tin_shift.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/tin_shift_parrots.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/tin_shift_pytorch.h -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/upfirdn2d.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/upfirdn2d_parrots.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/voxelization.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/voxelization_parrots.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots copying mmcv/ops/csrc/parrots/voxelization_pytorch.h -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/parrots creating build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/active_rotated_filter.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/assign_score_withk.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/ball_query.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/bbox_overlaps.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/border_align.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/box_iou_rotated.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/carafe.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/carafe_naive.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/contour_expand.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/convex_iou.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/correlation.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/deform_conv.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/deform_roi_pool.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/diff_iou_rotated.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/focal_loss.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/furthest_point_sample.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/fused_bias_leakyrelu.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/fused_spconv_ops.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/gather_points.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/group_points.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/info.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/iou3d.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/knn.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/masked_conv2d.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/min_area_polygons.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/modulated_deform_conv.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/ms_deform_attn.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/nms.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/nms_rotated.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/pixel_group.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/points_in_boxes.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/points_in_polygons.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/psamask.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/pybind.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/riroi_align_rotated.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/roi_align.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/roi_align_rotated.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/roi_pool.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/roiaware_pool3d.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/roipoint_pool3d.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/rotated_feature_align.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/scatter_points.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/sparse_pool_ops.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/spconv_ops.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/spconv_utils.h -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/sync_bn.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/three_interpolate.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/three_nn.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/tin_shift.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/upfirdn2d.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch copying mmcv/ops/csrc/pytorch/voxelization.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch creating build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cpu copying mmcv/ops/csrc/pytorch/cpu/active_rotated_filter.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cpu copying mmcv/ops/csrc/pytorch/cpu/box_iou_rotated.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cpu copying mmcv/ops/csrc/pytorch/cpu/deform_conv.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cpu copying mmcv/ops/csrc/pytorch/cpu/modulated_deform_conv.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cpu copying mmcv/ops/csrc/pytorch/cpu/nms.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cpu copying mmcv/ops/csrc/pytorch/cpu/nms_rotated.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cpu copying mmcv/ops/csrc/pytorch/cpu/pixel_group.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cpu copying mmcv/ops/csrc/pytorch/cpu/points_in_boxes.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cpu copying mmcv/ops/csrc/pytorch/cpu/psamask.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cpu copying mmcv/ops/csrc/pytorch/cpu/roi_align.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cpu copying mmcv/ops/csrc/pytorch/cpu/roi_align_rotated.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cpu copying mmcv/ops/csrc/pytorch/cpu/sparse_indice.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cpu copying mmcv/ops/csrc/pytorch/cpu/sparse_maxpool.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cpu copying mmcv/ops/csrc/pytorch/cpu/sparse_reordering.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cpu copying mmcv/ops/csrc/pytorch/cpu/voxelization.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cpu creating build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/active_rotated_filter_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/assign_score_withk_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/ball_query_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/bbox_overlaps_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/border_align_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/box_iou_rotated_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/carafe_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/carafe_naive_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/convex_iou.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/correlation_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/cudabind.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/deform_conv_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/deform_roi_pool_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/diff_iou_rotated_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/focal_loss_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/furthest_point_sample_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/fused_bias_leakyrelu_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/fused_spconv_ops_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/gather_points_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/group_points_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/iou3d_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/knn_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/masked_conv2d_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/min_area_polygons.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/modulated_deform_conv_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/ms_deform_attn_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/nms_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/nms_rotated_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/points_in_boxes_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/points_in_polygons_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/psamask_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/riroi_align_rotated_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/roi_align_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/roi_align_rotated_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/roi_pool_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/roiaware_pool3d_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/roipoint_pool3d_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/rotated_feature_align_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/scatter_points_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/sparse_indice.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/sparse_maxpool.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/sparse_pool_ops_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/sparse_reordering.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/spconv_ops_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/sync_bn_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/three_interpolate_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/three_nn_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/tin_shift_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/upfirdn2d_kernel.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda copying mmcv/ops/csrc/pytorch/cuda/voxelization_cuda.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/cuda creating build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/mlu copying mmcv/ops/csrc/pytorch/mlu/bbox_overlaps_mlu.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/mlu copying mmcv/ops/csrc/pytorch/mlu/focal_loss_sigmoid_mlu.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/mlu copying mmcv/ops/csrc/pytorch/mlu/nms_mlu.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/mlu copying mmcv/ops/csrc/pytorch/mlu/roi_align_mlu.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/mlu copying mmcv/ops/csrc/pytorch/mlu/tin_shift_mlu.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/pytorch/mlu creating build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt copying mmcv/ops/csrc/tensorrt/trt_corner_pool.hpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt copying mmcv/ops/csrc/tensorrt/trt_cuda_helper.cuh -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt copying mmcv/ops/csrc/tensorrt/trt_cummaxmin.hpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt copying mmcv/ops/csrc/tensorrt/trt_deform_conv.hpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt copying mmcv/ops/csrc/tensorrt/trt_grid_sampler.hpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt copying mmcv/ops/csrc/tensorrt/trt_instance_norm.hpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt copying mmcv/ops/csrc/tensorrt/trt_modulated_deform_conv.hpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt copying mmcv/ops/csrc/tensorrt/trt_nms.hpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt copying mmcv/ops/csrc/tensorrt/trt_plugin.hpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt copying mmcv/ops/csrc/tensorrt/trt_plugin_helper.hpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt copying mmcv/ops/csrc/tensorrt/trt_roi_align.hpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt copying mmcv/ops/csrc/tensorrt/trt_scatternd.hpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt copying mmcv/ops/csrc/tensorrt/trt_serialize.hpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt creating build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt/plugins copying mmcv/ops/csrc/tensorrt/plugins/trt_corner_pool.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt/plugins copying mmcv/ops/csrc/tensorrt/plugins/trt_corner_pool_kernel.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt/plugins copying mmcv/ops/csrc/tensorrt/plugins/trt_cuda_helper.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt/plugins copying mmcv/ops/csrc/tensorrt/plugins/trt_cummaxmin.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt/plugins copying mmcv/ops/csrc/tensorrt/plugins/trt_cummaxmin_kernel.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt/plugins copying mmcv/ops/csrc/tensorrt/plugins/trt_deform_conv.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt/plugins copying mmcv/ops/csrc/tensorrt/plugins/trt_deform_conv_kernel.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt/plugins copying mmcv/ops/csrc/tensorrt/plugins/trt_grid_sampler.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt/plugins copying mmcv/ops/csrc/tensorrt/plugins/trt_grid_sampler_kernel.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt/plugins copying mmcv/ops/csrc/tensorrt/plugins/trt_instance_norm.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt/plugins copying mmcv/ops/csrc/tensorrt/plugins/trt_modulated_deform_conv.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt/plugins copying mmcv/ops/csrc/tensorrt/plugins/trt_modulated_deform_conv_kernel.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt/plugins copying mmcv/ops/csrc/tensorrt/plugins/trt_nms.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt/plugins copying mmcv/ops/csrc/tensorrt/plugins/trt_nms_kernel.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt/plugins copying mmcv/ops/csrc/tensorrt/plugins/trt_plugin.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt/plugins copying mmcv/ops/csrc/tensorrt/plugins/trt_roi_align.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt/plugins copying mmcv/ops/csrc/tensorrt/plugins/trt_roi_align_kernel.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt/plugins copying mmcv/ops/csrc/tensorrt/plugins/trt_scatternd.cpp -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt/plugins copying mmcv/ops/csrc/tensorrt/plugins/trt_scatternd_kernel.cu -> build/lib.linux-x86_64-cpython-310/mmcv/ops/csrc/tensorrt/plugins running build_ext Traceback (most recent call last): File "<string>", line 2, in <module> File "<pip-setuptools-caller>", line 35, in <module> File "/tmp/pip-install-llwa_afu/mmcv-full_ee0517bc5c5749f89f22f446bfc7022a/setup.py", line 393, in <module> setup( File "/home/tj/miniconda3/envs/hamer/lib/python3.10/site-packages/setuptools/__init__.py", line 117, in setup return distutils.core.setup(**attrs) File "/home/tj/miniconda3/envs/hamer/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 186, in setup return run_commands(dist) File "/home/tj/miniconda3/envs/hamer/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 202, in run_commands dist.run_commands() File "/home/tj/miniconda3/envs/hamer/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 1002, in run_commands self.run_command(cmd) File "/home/tj/miniconda3/envs/hamer/lib/python3.10/site-packages/setuptools/dist.py", line 1104, in run_command super().run_command(command) File "/home/tj/miniconda3/envs/hamer/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 1021, in run_command cmd_obj.run() File "/home/tj/miniconda3/envs/hamer/lib/python3.10/site-packages/setuptools/command/bdist_wheel.py", line 370, in run self.run_command("build") File "/home/tj/miniconda3/envs/hamer/lib/python3.10/site-packages/setuptools/_distutils/cmd.py", line 357, in run_command self.distribution.run_command(command) File "/home/tj/miniconda3/envs/hamer/lib/python3.10/site-packages/setuptools/dist.py", line 1104, in run_command super().run_command(command) File "/home/tj/miniconda3/envs/hamer/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 1021, in run_command cmd_obj.run() File "/home/tj/miniconda3/envs/hamer/lib/python3.10/site-packages/setuptools/_distutils/command/build.py", line 135, in run self.run_command(cmd_name) File "/home/tj/miniconda3/envs/hamer/lib/python3.10/site-packages/setuptools/_distutils/cmd.py", line 357, in run_command self.distribution.run_command(command) File "/home/tj/miniconda3/envs/hamer/lib/python3.10/site-packages/setuptools/dist.py", line 1104, in run_command super().run_command(command) File "/home/tj/miniconda3/envs/hamer/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 1021, in run_command cmd_obj.run() File "/home/tj/miniconda3/envs/hamer/lib/python3.10/site-packages/setuptools/command/build_ext.py", line 99, in run _build_ext.run(self) File "/home/tj/miniconda3/envs/hamer/lib/python3.10/site-packages/setuptools/_distutils/command/build_ext.py", line 368, in run self.build_extensions() File "/home/tj/miniconda3/envs/hamer/lib/python3.10/site-packages/torch/utils/cpp_extension.py", line 650, in build_extensions _check_cuda_version(compiler_name, compiler_version) File "/home/tj/miniconda3/envs/hamer/lib/python3.10/site-packages/torch/utils/cpp_extension.py", line 506, in _check_cuda_version raise RuntimeError(CUDA_MISMATCH_MESSAGE, cuda_str_version, torch.version.cuda) RuntimeError: ('The detected CUDA version (%s) mismatches the version that was used to compilePyTorch (%s). Please make sure to use the same CUDA versions.', '11.7', '12.8') [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for mmcv-full Running setup.py clean for mmcv-full Failed to build mmcv-full error: failed-wheel-build-for-install × Failed to build installable wheels for some pyproject.toml based projects ╰─> mmcv-full
10-06
本系统旨在构建一套面向高等院校的综合性教务管理平台,涵盖学生、教师及教务处三个核心角色的业务需求。系统设计着重于实现教学流程的规范化与数据处理的自动化,以提升日常教学管理工作的效率与准确性。 在面向学生的功能模块中,系统提供了课程选修服务,学生可依据培养方案选择相应课程,并生成个人专属的课表。成绩查询功能支持学生查阅个人各科目成绩,同时系统可自动计算并展示该课程的全班最高分、平均分、最低分以及学生在班级内的成绩排名。 教师端功能主要围绕课程与成绩管理展开。教师可发起课程设置申请,提交包括课程编码、课程名称、学分学时、课程概述在内的新课程信息,亦可对已开设课程的信息进行更新或撤销。在课程管理方面,教师具备录入所授课程期末考试成绩的权限,并可导出选修该课程的学生名单。 教务处作为管理中枢,拥有课程审批与教学统筹两大核心职能。课程设置审批模块负责处理教师提交的课程申请,管理员可根据教学计划与资源情况进行审核批复。教学安排模块则负责全局管控,包括管理所有学生的选课最终结果、生成包含学号、姓名、课程及成绩的正式成绩单,并能基于选课与成绩数据,统计各门课程的实际选课人数、最高分、最低分、平均分以及成绩合格的学生数量。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值