复制+粘贴->集群就绪 | 微软视角hpc4you_toolkit使用演示

hpc4you_toolkit简化了在Linux服务器上搭建并行计算集群的过程,尤其适合电脑技能较弱的新生。新改进包括提供单一文件包,通过复制粘贴指令即可完成集群配置。视频教程涵盖了微软系统下的操作,帮助用户从上传文件到执行命令的全过程。

最新更新

2022年8月28日再次改进. 

也许是我自己使用Linux太久了, 实在无法理解, 为何总有人抱怨, 上传文件后, 找不到文件在哪里? 

问题是, 文件是你自己上传的, 我怎么晓得文件在哪里? 

这次改进如下:

  1. 采用单一文件包提供, 比如文件是hpc4you_toolkit-*.zip, 仅仅上传单一文件. 
  2. 解压, 而后输入 source code 即可. 
  3. 打开yum/dnf/apt默认输出信息, 让等待不再无聊. 

解压zip文件, 应该能搞定吧? 

如果还是搞不定, 这里可以提供两条指令, 请粘贴到终端, 按回车键, 耐心等待后, 集群就自动配置完毕了.

两条指令类似于:

wget https://jluedu.top/XXX/hpc4you_toolkit-basic.zip
unzip hpc4you_toolkit-basic.zip; source code

显然, 以上两条指令, 会通过电邮提供, 请复制、粘贴、而后按回车键就行. 

视频介绍

  1. hpc4you_toolkit 全模块操作讲解, 中文, 复制+粘贴 -> 集群就绪 | 讲解版_哔哩哔哩_bilibili
  2. hpc4you_toolkit 全模块操作讲解, 英文, Copy & Paste, HPC Ready | 英文讲解版_哔哩哔哩_bilibili
  3. 组建并行计算集群, 50秒简介, 零配置组建并行计算集群 | 50秒简介_哔哩哔哩_bilibili
  4. 组建并行计算集群, 90秒简介, 零配置做并行计算集群 | 90秒简介_哔哩哔哩_bilibili
  5. hpc4you集群方案, 零管理, 零维护, 集群管理简介_哔哩哔哩_bilibili

以下是历史文件, 有兴趣可以看看. 

-----------------

Ubuntu 22.04 Sat Aug 30 13:30:13 2025 +-----------------------------------------------------------------------------------------+ | NVIDIA-SMI 570.86.16 Driver Version: 572.16 CUDA Version: 12.8 | |-----------------------------------------+------------------------+----------------------+ | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+========================+======================| | 0 NVIDIA GeForce GTX 1650 On | 00000000:01:00.0 Off | N/A | | N/A 52C P8 6W / 50W | 98MiB / 4096MiB | 0% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ +-----------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=========================================================================================| | No running processes found | +-----------------------------------------------------------------------------------------+liuweihao@DESKTOP-H5JEK9D:~$ nvcc --version nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2024 NVIDIA Corporation Built on Thu_Sep_12_02:18:05_PDT_2024 Cuda compilation tools, release 12.6, V12.6.77 Build cuda_12.6.r12.6/compiler.34841621_0 liuweihao@DESKTOP-H5JEK9D:~$ liuweihao@DESKTOP-H5JEK9D:~$ nvfortran -help -cuda Reading rcfile /opt/nvidia/hpc_sdk/Linux_x86_64/24.11/compilers/bin/.nvfortranrc -cuda[=charstring|madconst] Enable CUDA Fortran. Add CUDA include paths. Link with the CUDA runtime libraries. Please refer to -gpu for target specific options charstring Enable limited support for character strings in GPU kernels madconst Put Module Array Descriptors in CUDA Constant Memory liuweihao@DESKTOP-H5JEK9D:~$ liuweihao@DESKTOP-H5JEK9D:~$ nvidia-smi --query-gpu=compute_cap --format=csv compute_cap 7.5 liuweihao@DESKTOP-H5JEK9D:~$ldd ./putong
最新发布
08-31
<think> 我们已知用户在Ubuntu 22.04虚拟环境中运行CUDA Fortran程序报错,并且提供了以下关键信息: - NVIDIA-SMI显示:Driver Version: 572.16, CUDA Version: 12.8 - nvcc版本:release 12.6 - GPU计算能力:7.5 用户之前运行了`ldd ./putong`,我们推测可能是动态链接问题或者环境配置问题。 根据引用[1]中的版本关系: - CUDA Driver API版本(由驱动提供)是12.8 - CUDA Runtime API版本(由CUDA Toolkit提供)是12.6 这是符合版本兼容性要求的(Runtime版本12.6 <= Driver版本12.8),所以版本不是问题。 接下来,我们需要考虑以下几个方面: 1. **虚拟化环境中的GPU透传是否正确配置?** - 检查GPU是否成功透传给虚拟机:`lspci -nn | grep NVIDIA` - 检查驱动是否在虚拟机内正常加载:`lsmod | grep nvidia` 2. **CUDA Fortran运行时环境是否正确?** - 确保安装的CUDA Toolkit包含CUDA Fortran运行时库(通常是`libcudart`和`libcudadevrt`等) - 检查程序依赖库:`ldd ./putong`的输出结果,查看是否有未解析的符号或找不到的库 3. **CUDA Fortran程序编译选项是否正确?** - 编译时是否指定了正确的计算能力(如`-gpu=cc75`)? 4. **程序运行时错误类型** - 运行时具体的错误信息是什么?例如是`CUDA error: out of memory`还是`kernel launch failed`等。 由于用户没有提供具体的错误信息,我们将按照常见的故障排除步骤进行指导。 ### 解决方法 #### 步骤1:验证GPU透传和驱动加载 在虚拟机中执行: ```bash $ lspci -nn | grep NVIDIA ``` 检查是否有NVIDIA GPU设备。如果没有,说明透传未成功,需在虚拟化平台(如KVM)配置GPU透传。 然后检查驱动模块: ```bash $ lsmod | grep nvidia ``` 如果没有任何输出,说明驱动未加载。尝试重新加载驱动: ```bash $ sudo modprobe nvidia $ sudo modprobe nvidia_uvm $ sudo modprobe nvidia_drm ``` #### 步骤2:检查CUDA运行时库 确保CUDA Fortran程序链接了正确的CUDA运行时库。使用`ldd`检查: ```bash $ ldd ./putong ``` 重点关注以下库: - `libcudart.so.12` -> 应该指向一个存在的文件(如`libcudart.so.12.6`) - `libcudadevrt.a`(静态库,不会出现在ldd中,但编译时需要) 如果库路径不对,可以设置`LD_LIBRARY_PATH`: ```bash $ export LD_LIBRARY_PATH=/usr/local/cuda-12.6/lib64:$LD_LIBRARY_PATH ``` #### 步骤3:验证CUDA Fortran编译环境 重新编译程序,并确保指定计算能力(根据用户GPU的计算能力7.5): ```bash $ nvfortran -gpu=cc75 -cuda your_program.f90 -o putong ``` #### 步骤4:运行环境隔离 使用`CUDA_VISIBLE_DEVICES`指定使用的GPU(特别是多GPU环境下): ```bash $ CUDA_VISIBLE_DEVICES=0 ./putong ``` #### 步骤5:捕获运行时错误 如果程序运行时报错,使用`cuda-gdb`调试: ```bash $ cuda-gdb ./putong (cuda-gdb) run ``` 观察错误信息。 ### 常见错误及解决方案 | 错误类型 | 解决方案 | |-----------------------------------|--------------------------------------------------------------------------| | `CUDA error: invalid device` | 检查GPU透传和驱动加载;确保`CUDA_VISIBLE_DEVICES`设置正确 | | `CUDA error: out of memory` | 检查虚拟机分配的显存大小;减少程序显存需求 | | `libcudart.so.XX: cannot open...` | 设置`LD_LIBRARY_PATH`;安装对应版本的CUDA Runtime | | `unsupported compute capability` | 编译时添加`-gpu=ccXX`选项(XX为计算能力,如75) | ### 补充说明 在虚拟化环境中运行CUDA程序,还需注意: - **显存分配限制**:虚拟机分配的显存不能超过宿主机的显存上限。 - **PCI透传兼容性**:确保宿主机BIOS中开启VT-d/AMD-Vi等虚拟化技术支持。 - **驱动版本匹配**:虚拟机内安装的驱动版本需与宿主机驱动版本一致(建议使用相同版本)。 --- ### 相关问题 1. 如何验证KVM虚拟化环境中的NVIDIA GPU透传配置? 2. 当出现`CUDA_ERROR_OUT_OF_MEMORY`时,如何分析虚拟机的显存使用情况? 3. CUDA Fortran程序如何指定多GPU计算? 4. 如何升级虚拟机内的NVIDIA驱动以匹配宿主机版本? 5. 在Ubuntu 22.04中如何设置永久生效的`LD_LIBRARY_PATH`? [^1]: CUDA版本兼容性说明 - NVIDIA官方文档第一章 </think> 根据您提供的环境信息(Ubuntu 22.04虚拟机、NVIDIA-SMI 570.86.16、CUDA 12.8、nvcc 12.6、GPU计算能力7.5),以下是系统级的解决方案: ### 环境诊断与解决步骤 #### 1. **验证CUDA版本兼容性** - **驱动版本**:`CUDA Version: 12.8`(由`nvidia-smi`显示) - **运行时版本**:`nvcc release 12.6` - **兼容性规则**:运行时版本(12.6)必须 $\leq$ 驱动版本(12.8)[^1] ✅ 当前配置符合要求 $12.6 < 12.8$ #### 2. **检查GPU透传状态** 在虚拟机终端执行: ```bash $ lspci -nn | grep NVIDIA ``` 预期输出应包含NVIDIA GPU设备ID(如`10de:XXXX`)。若输出为空,说明GPU未成功透传,需: - 在虚拟化管理器(KVM/VMware)中启用PCIe直通 - 验证宿主机BIOS已开启VT-d/IOMMU #### 3. **验证CUDA Fortran运行时** 检查动态库链接: ```bash $ ldd ./putong | grep cudart ``` ✅ 正常应显示:`libcudart.so.12 => /usr/local/cuda-12.6/lib64/libcudart.so.12` ❌ 若显示`not found`,需设置环境变量: ```bash $ export LD_LIBRARY_PATH=/usr/local/cuda-12.6/lib64:$LD_LIBRARY_PATH ``` #### 4. **计算能力匹配编译** 显式指定GPU计算能力(7.5): ```bash $ nvfortran -gpu=cc75 -cuda your_program.f90 -o putong ``` 其中: - `-gpu=cc75`:匹配计算能力7.5 - `-cuda`:启用CUDA Fortran扩展 #### 5. **运行时错误捕获** 使用CUDA调试器定位错误: ```bash $ cuda-gdb ./putong (cuda-gdb) set cuda break_on_launch all (cuda-gdb) run ``` ### 常见错误解决方案 | 错误类型 | 解决方案 | |------------------------------|--------------------------------------------------------------------------| | `CUDA_ERROR_INVALID_DEVICE` | 检查GPU透传配置;执行`nvidia-smi`确认设备可见性 | | `Undefined symbol: cudaXXX` | 添加编译选项`-Mcuda`;检查`LD_LIBRARY_PATH`是否包含CUDA lib路径 | | `Missing libcudart.so.12.6` | 创建符号链接:`sudo ln -s /usr/local/cuda-12.6/lib64 /usr/lib/cuda-12.6` | | `Unsupported gpu architecture` | 升级nvfortran至2023版(最低支持计算能力7.5) | ### 关键配置验证公式 编译环境验证公式: $$ \text{兼容性} = \begin{cases} \text{true} & \text{if } \text{CUDA Runtime} \leq \text{Driver Version} \\ \text{false} & \text{otherwise} \end{cases} $$ $$ \text{本例:} 12.6 \leq 12.8 = \text{true} $$ --- ### 相关问题 1. 如何确认KVM虚拟机中GPU透传是否成功? 2. 当CUDA Runtime与Driver版本不匹配时应如何降级? 3. 如何为不同计算能力的GPU编译多版本二进制文件? 4. CUDA Fortran中设备内存分配错误如何调试? 5. 在Ubuntu 22.04上如何彻底卸载并重装CUDA Toolkit? [^1]: CUDA版本兼容性原则 - NVIDIA官方文档第一章 [^2]: cuDNN与CUDA Toolkit版本映射关系 - NVIDIA开发者论坛
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值