*超算中心 K8s 容器服务**的定位、用途、优势和适用场景:

https://www.scnet.cn/ui/console/index.html#/container-service/container-group 新版只支持武汉,只能开一张卡,但是免费

老版本支持大部分算力中心 ,支持4张16g卡,但是需要开通或者收费
https://www.scnet.cn/ui/console/index.html#/container-service/add-container-instance

一、核心是什么

超算中心基于 Kubernetes(K8s) 搭建的容器化计算集群,就是把传统超算节点、异构加速卡(你这里的DCU)、CPU/内存资源,打包成独立容器对外提供服务。
和普通云容器、本地Docker本质一致,但硬件是超算级算力(多核CPU、大内存、国产DCU加速卡)。

二、主要用途(超算用户最常用)

  1. 跑算力任务
    模型训练、推理、数值计算、仿真、大数据处理、AI任务等。你当前的环境配有DCU异构加速卡,主打AI/深度学习、并行计算。

  2. 统一调度硬件资源
    超算节点多、硬件杂(CPU/加速卡),K8s自动分配节点、管控资源配额(你看到的7核CPU/60G内存/16G DCU),避免多人抢资源、资源浪费。

  3. 环境一键复用&隔离

    • 容器自带独立运行环境(Python、CUDA、驱动、依赖库),不用反复装机配环境
    • 不同用户/任务环境互相隔离,互不干扰。
  4. 临时交互式开发 + 后台批量任务

    • 你现在 kubectl exec 进容器,属于交互式终端:调试代码、测试环境、排错、试运行;
    • 也可以提交离线任务,让容器在后台长时间跑训练/计算,不用一直挂着终端。

三、和传统超算(Slurm)的区别

超算中心一般两套体系并存:

  1. 传统 Slurm:老牌超算调度,偏向大规模并行计算、HPC仿真、MPI集群,适合超长时间、多节点集群任务。
  2. K8s 容器服务:偏向轻量化、环境标准化、AI/云原生任务,上手更简单,环境迁移方便,主打单节点+加速卡场景(你现在就是单DCU节点)。

四、结合你当前环境的使用场景

从你的信息来看,这个环境定位很明确:

  • 单节点、大内存(60G)+ 国产DCU加速卡 → 主要用于 AI模型训练、推理、深度学习实验
  • /root/private_data持久化存储:代码、数据集、模型权重放这里,重启容器不丢失;系统盘 /workspace 临时用。
  • 支持交互式登录,适合代码调试、实验验证,也可提交容器任务跑正式作业。

五、总结一句话

超算K8s容器 = 超算硬件 + 容器化环境 + K8s资源调度,给你提供开箱即用、环境隔离、带高端CPU/加速卡的计算沙箱,主要用来跑AI、大数据、高性能计算类任务。

老版本有挂载点

一句话:挂载点就是把“超算平台的持久化存储/共享目录”映射到你容器里的某个路径,让容器里读写这个路径,实际上是在操作平台上的永久存储,删容器数据不丢

一、通俗理解(类比)

  • 容器本身像一个临时虚拟机:里面的 /workspace/ 系统盘都是临时的,删容器/重建就没了。
  • 挂载 = 给容器插了一块“永久硬盘”
    • 外部存储(超算平台):你的个人存储、项目共享盘、高速缓存盘。
    • 容器内挂载点(mountPath):容器里的一个目录,比如 /root/private_data/work/home/你的账号
  • 你在容器里 cd /root/private_data其实就是直接读写超算平台上你的个人存储,容器没了文件还在。

二、超算互联网(scnet.cn)里的挂载点

你截图页面是“添加容器实例”的挂载配置区,常见三类:

1)个人持久化存储(必用)
  • 外部存储:平台给你分配的个人数据盘(独立于容器)。
  • 默认挂载点/root/private_data(或 /work/home/scneeghb00)。
  • 作用:代码、数据集、模型权重放这里,重启/删容器都不丢
2)项目共享存储(组队用)
  • 外部存储:团队共享盘(同一项目成员都能读写)。
  • 挂载点:如 /groups/项目名/share
  • 作用:多人协作,共享数据集、代码、结果。
3)高速缓存盘(跑任务用)
  • 外部存储:超算集群的高速本地盘(速度快、临时)。
  • 挂载点:如 /sfs/cache
  • 作用:放训练中间文件、临时数据,速度比个人盘快,但容器删了可能清空。

三、关键概念(页面上的字段)

  • 挂载点(容器内路径):容器里的目录,比如 /root/private_data必须是容器内不存在或空的目录
  • 存储来源:选“个人存储”“项目存储”“高速缓存”等。
  • 只读/读写:默认读写;如果是公共数据集,可设只读防误删。

四、为什么一定要用挂载点?

  1. 数据不丢:容器是临时环境,只有挂载目录的数据才持久化
  2. 数据互通:多个容器、多个任务可以挂载同一个存储,共享数据
  3. 速度更快:高速缓存盘比系统盘快,跑大模型训练必须用

五、你当前环境的对应关系

你登录后看到:

/root/private_data 等价 /work/home/scneeghb00 → 个人持久化挂载点

这就是平台默认帮你挂载好的个人存储,不用自己配;新建容器时也可以手动添加更多挂载(比如项目盘、高速盘)。

老版本容器 ssh 模式,容易连不上 失败

国家超算中心 老版本 容器 提示 前实例已停止服务,可能的原因包括:实例被停用、关机或删除,您可以 返回 查看具体原因。若实例未删除,可重新启用/开机后刷新本页面,若实例被删除,请重新创建实例后使用SSH进入。 ,昆山节点

重启也没有用。而且我只用了一个dcu

这里有一个问题,部署一下 需要5-10分钟以上不像notebooke那样非常快

在这里插入图片描述

jupyterlab## 标题 模式 可以进入服务器,

在这里插入图片描述

jupyterlab 模式找不到节点的共享文件夹,不同于notebook,(全部加载)

你现在在老版本容器(worker-0)里看不到 /public/SothisAI/sharingCenter/other/、/public/home,是因为老容器平台默认没把 /public 整个挂载进容器,只挂了一部分,或者根本没挂。

你看到的目录:

bin   dev  home         lib    lib64   media  opt   public  run   srv  tmp  var   workspace
boot  etc  jupyter-ext  lib32  libx32  mnt    proc  root    sbin  sys  usr  work  容器juberlab

1. 哪个是共享目录?

  • /public:容器里确实有这个目录,但里面是空的或者只挂了少量子目录,不是超算集群那个完整的 /public。
  • /work、/workspace:一般是容器本地临时盘(不是集群共享存储)。
  • /public/SothisAI/sharingCenter/other//acz6ty4okx、/public/home/acz6ty4okx:这两个是集群级共享路径,老容器默认不挂载,所以你在容器里 cd 进去会提示不存在。

2. 为什么找不到?(昆山老平台通病)

  • 老容器(jupyterlab/网页容器)不是全量挂载 /public,只做了最小化挂载,没把 share、home 挂进来
  • 你看到的 /public 是容器内部的空目录或局部挂载点,和集群 login 节点的 /public 不是同一个。

3. 怎么在容器里访问到你的共享目录?

  • 容器里的 /public ≠ 集群 /public,所以找不到你的 share/home;
  • 最快解决:重建容器,勾选“挂载集群 /public”
  • https://www.scnet.cn/ui/console/index.html#/space/shell
  • 临时用:先登 login 节点,直接在 login 里操作 /public/SothisAI/sharingCenter/other/acz6ty4okx。
    cp -rf 把 cp -rf 文件夹/ /public/home/$USER

为什么要保存镜像

在 SCNet(国家超算互联网)平台上,保存镜像 是一个非常重要的功能,主要原因如下:


核心原因:持久化您的环境配置

1. 容器是临时的,镜像是持久的

  • 容器实例(Container Instance)运行时的修改(安装的软件、配置的环境变量、下载的数据等)默认只保存在容器内部
  • 一旦容器停止、删除或重启,这些修改会全部丢失
  • 保存镜像 = 把当前容器的完整状态"拍快照"固化下来,以后可以基于这个镜像重新创建一模一样的环境

2. 避免重复配置环境

假设您在容器里:

  • 安装了 PyTorch、TensorFlow、JAX 等深度学习框架
  • 配置了 CUDA、cuDNN、NCCL 等 GPU 依赖
  • 安装了各种 Python 包、系统工具、编译器
  • 设置了环境变量、SSH 密钥、Git 配置

不保存镜像:下次开新容器 → 从零开始重新安装一遍(耗时几十分钟到几小时)

保存镜像:下次直接基于保存的镜像启动 → 环境 instantly ready

3. 跨节点/跨任务复用

  • 超算平台通常有多个计算节点,任务结束后容器会被回收
  • 保存镜像后,可以在任何节点任何时间快速拉起相同环境
  • 方便批量提交多个相同配置的任务

4. 版本管理与回滚

  • 可以保存多个版本的镜像(如 v1-basev2-with-pytorchv3-finetuned
  • 如果新环境搞坏了,可以回退到之前的镜像版本

5. 团队协作

  • 将镜像共享给团队其他成员,确保大家使用完全一致的运行环境
  • 避免"在我机器上能跑"的问题

典型使用场景

场景 操作建议
刚配置好深度学习环境 立即保存镜像
安装了新的软件包/库 保存镜像 并打标签
任务运行前 确认基于正确的已保存镜像启动
长期项目 定期保存镜像,做好版本管理

在 SCNet 上的具体操作

在控制台 容器服务 → 容器实例 页面,通常会有:

  • “保存镜像”“制作镜像” 按钮
  • 可以自定义镜像名称和标签(如 my-env:v1
  • 保存后可在 “镜像仓库” 中查看和管理

总结

保存镜像 = 给您的劳动成果上保险

容器实例随时可能被清理,只有保存为镜像后,您的环境配置才能真正"留下来"供后续反复使用。这是超算/云计算平台上最基础也最重要的操作习惯之一。

/public/home/$USER 目录 不会变把。生成的文件,不需要保存镜像吧

您说得对,但需要区分清楚:


持久化存储 vs 容器镜像

持久化存储(如 /public/home/$USER 容器镜像
保存内容 您的代码、数据、模型文件、脚本等 系统环境、安装的软件、配置、依赖库
生命周期 永久保留,与容器无关 需要主动保存,否则容器删除后丢失
类比 就像您的 U 盘/硬盘,文件一直在 就像电脑的系统盘,重装后环境没了

您的理解基本正确

/public/home/$USER    # ✅ 持久化存储,文件不会丢
/public/share/xxx     # ✅ 共享存储,文件不会丢

这些目录里的文件确实不需要"保存镜像"来保留,因为它们是挂载到容器外部的独立存储,与容器的生命周期无关。


那什么需要保存镜像?

容器内部的非挂载目录,例如:

# 这些路径在容器内部,容器删除后全部消失
/usr/local/lib/python3.x/dist-packages/   # pip 安装的包
/usr/local/bin/                           # 安装的工具
/etc/                                     # 系统配置
/root/                                    # root 用户的家目录(非挂载)
/opt/                                     # 额外安装的软件

实际场景判断

场景 1:您只在 /public/home/$USER 里写代码和存数据

  • 使用平台预置的基础镜像(如 PyTorch 镜像)
  • 代码和数据都存在家目录
  • 不需要保存镜像

场景 2:您在容器里 pip install 了新包,或 apt install 了系统工具

  • 新包安装在 /usr/local/lib/...(容器内部)
  • 容器删除后,这些包就没了
  • 需要保存镜像 ⚠️,否则下次开新容器要重新安装

场景 3:您修改了系统配置文件(如 ~/.bashrc/etc/hosts

  • 这些修改在容器内部
  • 需要保存镜像 ⚠️

最佳实践建议

操作 存放位置 是否需要保存镜像
代码、脚本、Notebook /public/home/$USER ❌ 不需要
数据集、模型权重 /public/home/$USER/public/share/ ❌ 不需要
pip install xxx 容器内部 /usr/local/... 需要
apt-get install xxx 容器内部 /usr/bin/... 需要
修改环境变量、配置文件 容器内部 /etc//root/ 需要

一个实用技巧

如果您经常需要安装额外包,可以:

# 1. 在家目录创建 requirements.txt,记录依赖
cat > /public/home/$USER/requirements.txt << 'EOF'
torch==2.3.0
transformers
datasets
EOF

# 2. 每次启动容器后一键安装(比保存镜像更轻量)
pip install -r /public/home/$USER/requirements.txt

这样即使不保存镜像,也能快速恢复环境。


总结

/public/home/$USER 里的文件是安全的,不需要保存镜像。

只有容器内部的系统环境和软件安装,才需要保存镜像来持久化。

显卡查看 异构加速卡1 是第一代显卡 只支持rocm-smi

在这里插入图片描述 `

# 查看是否有 DCU 设备
ls /dev/dcu* 2>/dev/null || echo "No DCU devices found"

# 或者查看 PCI 设备
lspci | grep -i 'VGA\|3D\|Display' | head -10
No DCU devices found
04:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Vega 20 [Radeon Pro VII/Radeon Instinct MI50 32GB] (rev 04)
23:00.0 VGA compatible controller: ASPEED Technology, Inc. ASPEED Graphics Family (rev 41)
26:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Vega 20 [Radeon Pro VII/Radeon Instinct MI50 32GB] (rev 04)
43:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Vega 20 [Radeon Pro VII/Radeon Instinct MI50 32GB] (rev 04)
63:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Vega 20 [Radeon Pro VII/Radeon Instinct MI50 32GB] (rev 04)
root@worker-0:/public/home/a15657581978/merged_correct# # 查看 ROCm GPU 监控(最常用)
rocm-smi

# 查看详细信息
rocm-smi --showmeminfo vram
rocm-smi --showpidgpus

# 查看 ROCm 环境信息
rocminfo | head -30

============================ System Management Interface =============================
======================================================================================
HCU     Temp     AvgPwr     Perf     PwrCap     VRAM%      HCU%      Mode     
0       49.0C    25.0W      auto     300.0W     0%         0%        N/A      
1       49.0C    23.0W      auto     300.0W     0%         0%        N/A      
2       49.0C    30.0W      auto     300.0W     0%         0%        N/A      
3       51.0C    22.0W      auto     300.0W     0%         0%        N/A      
======================================================================================
=================================== End of SMI Log ===================================


============================ System Management Interface =============================
======================================================================================
HCU[0]          : vram Total Memory (MiB): 16368
HCU[0]          : vram Total Used Memory (MiB): 10
HCU[1]          : vram Total Memory (MiB): 16368
HCU[1]          : vram Total Used Memory (MiB): 10
HCU[2]          : vram Total Memory (MiB): 16368
HCU[2]          : vram Total Used Memory (MiB): 10
HCU[3]          : vram Total Memory (MiB): 16368
HCU[3]          : vram Total Used Memory (MiB): 10
======================================================================================
=================================== End of SMI Log ===================================

Error: Invlaid arguments: --showpidgpus 
amdgpu module is loaded
=====================    
HSA System Attributes    
=====================    
Runtime Version:         1.1
System Timestamp Freq.:  1000.000000MHz
Sig. Max Wait Duration:  18446744073709551615 (0xFFFFFFFFFFFFFFFF) (timestamp count)
Machine Model:           LARGE                              
System Endianness:       LITTLE                             
Mwaitx:                  DISABLED
DMAbuf Support:          NO

==========               
HSA Agents               
==========               
*******                  
Agent 1                  
*******                  
  Name:                    Hygon C86 7185 32-core Processor   
  Uuid:                    CPU-XX                             
  Marketing Name:          Hygon C86 7185 32-core Processor   
  Vendor Name:             HygonGenuine                       
  Feature:                 None specified                     
  Profile:                 FULL_PROFILE                       
  Float Round Mode:        NEAR                               
  Max Queue Number:        0(0x0)                             
  Queue Min Size:          0(0x0)                             
  Queue Max Size:          0(0x0)                             
  Queue Type:              MULTI                              
  Node:                    0       

`


实际硬件情况

现在真相大白了!从 rocm-smirocminfo 的输出可以确认:

项目 实际值
GPU 型号 AMD MI50 32GB 物理卡
实际可用显存 16GB(16368 MiB)
数量 4 块
CPU 海光 C86 7185 32核处理器
平台类型 海光 DCU 兼容卡(基于 AMD MI50 定制,显存砍半)

关键发现

HCU[0] : vram Total Memory (MiB): 16368   ← 16GB,不是 32GB

虽然 lspci 显示的是 AMD MI50 32GB(物理硬件),但 rocm-smi 显示实际可用显存是 16GB

这说明: - 或者这是海光定制的 DCU 版本(基于 MI50 核心,但显存配置为 16GB) 基于 AMD MI50 的定制卡


控制台信息是对的

控制台显示 实际对应
异构加速卡 1/16GB ✅ 正确,实际可用就是 1 张卡 16GB
CPU: 8核 实际海光 32核,但容器限制给您 8核
内存: 27GB 容器内存限制

所以您的环境是

海光 CPU (C86 7185) + 海光 DCU (基于 AMD MI50 16GB)

不是纯 AMD 平台,是海光 DCU 平台!


正确的 GPU 监控命令

# 海光 DCU 使用 rocm-smi( hy-smi命令hy-smi 通常支持 海光自研 DCU 芯片,因为底层是 AMD ROCm 兼容)
rocm-smi

# 查看显存
rocm-smi --showmeminfo vram

# 查看进程占用
rocm-smi --showpid

# 查看详细信息
rocm-smi -a

运行 AI 训练时的注意事项

# 1. 确认 PyTorch/TensorFlow 是否识别到 DCU
python3 -c "
import torch
print('PyTorch:', torch.__version__)
print('ROCm available:', torch.cuda.is_available())
print('Device count:', torch.cuda.device_count())
for i in range(torch.cuda.device_count()):
    print(f'  Device {i}: {torch.cuda.get_device_name(i)}')
    print(f'  Memory: {torch.cuda.get_device_properties(i).total_memory / 1024**3:.1f} GB')
"

# 2. 训练时限制显存使用(单卡 16GB,注意 batch size)
# 例如 LLaMA 7B 推理需要约 14GB,14B 可能需要多卡或量化

总结

问题 答案
为什么 hy-smi 找不到? 海光 DCU 底层用 AMD ROCm,rocm-smi 可用
为什么 lspci 显示 32GB 但可用 16GB? 物理卡 32GB,但平台/固件限制为 16GB
控制台信息是否准确? 显存 16GB 是准确的,CPU 和内存是容器配额

hy-smi 的典型支持范围

hy-smi 通常支持搭载海光原生 DTK 驱动的自研 DCU 芯片,例如:

海光 DCU 型号 是否支持 hy-smi 备注
海光 DCU Z100+ / K100 ✅ 支持 搭配海光 DTK 驱动使用
海光深算系列 (Z100-L等) ✅ 支持 搭配海光 DTK 驱动使用
基于 AMD MI50 的定制卡 ❌ 不支持 通常搭配 AMD ROCm 官方驱动
为什么您的环境不用 hy-smi?
您的卡虽然 CPU 是海光,但 GPU 部分本质上是 AMD MI50 的定制版本,平台部署了 AMD ROCm 官方驱动 而非海光原生 DTK 驱动。原因通常有以下三点:
  1. 驱动选择:平台为了兼容性和稳定性,选择了 ROCm 官方驱动。SMI 工具是跟驱动走的,装了 ROCm 驱动就对应 rocm-smi。
  2. 软件生态:ROCm 生态更成熟,对 PyTorch/TensorFlow 等主流框架的适配更开箱即用,无需等待海光 DTK 的版本更新。
  3. 硬件代际:较早批次的 MI50 定制卡,海光当时可能还未提供完整的原生 DTK 驱动支持。
    您的监控方案
    既然 rocm-smi 可用,直接用即可,基本监控功能与 hy-smi 完全对等:
# 基本监控(替代 hy-smi,查看整体状态)
rocm-smi
# 查看温度/功耗/利用率等所有详细信息(等同 nvidia-smi)
rocm-smi -a
# 仅查看显存详情(已用/可用/总量)
rocm-smi --showmeminfo vram
# 持续监控(每秒刷新显存状态,类似 watch -n 1)
rocm-smi --showmeminfo vram -d 1

💡 进阶提示:

  • 查找占卡进程:如果您发现显存被占用但不知道是谁占的,可以使用 rocm-smi --showpids 查看占用 GPU 的进程 PID。
  • 切勿混装:您的环境既然已经基于 ROCm 驱动,请勿尝试强行安装 hy-smi 或海光 DTK 驱动,这极易导致内核驱动冲突,造成系统死机或设备不可用。
Logo

免费领 150 小时云算力,进群参与显卡、AI PC 幸运抽奖

更多推荐