惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

爱范儿
爱范儿
T
The Blog of Author Tim Ferriss
G
Google Developers Blog
博客园_首页
博客园 - 【当耐特】
量子位
S
SegmentFault 最新的问题
B
Blog RSS Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
V
Visual Studio Blog
T
Tailwind CSS Blog
阮一峰的网络日志
阮一峰的网络日志
V
V2EX
Y
Y Combinator Blog
博客园 - 聂微东
The Cloudflare Blog
小众软件
小众软件
J
Java Code Geeks
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
月光博客
月光博客
H
Help Net Security
Jina AI
Jina AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
宝玉的分享
宝玉的分享

博客园 - marsggbo

GPU 算力没在算模型,在等 CPU 发号施令——CUDA Graph 是怎么解决这件事的 推理模型做 decode,GPU 只有 3% 在干活——SparseSpec 把稀疏 Attention 变成了 2.1× 加速 vllm v1 源码精读(三):KV Cache 管理、Chunked Prefill 与异步架构 vllm v1 源码精读(二):generate() 计算流——model.forward() 在哪里被调用? vllm v1 源码精读(一):为什么要重写,以及 LLM() 这行代码背后发生了什么 160 个 AI 比 80 个效果更差?这篇论文量化了一件大家隐约知道但说不清楚的事 ICLR'25 | SWIFT:不训练不搜索,Self-Speculative Decoding 的即插即用版 2025 | SSD for dLLMs:扩散语言模型也能用推测解码,最高 3.46× arXiv'26 | SSD for ASR:用 CTC 编码器打草稿,LLM 验证,语音识别也能推测解码 WWW'26 | SS-MoE:显存墙下的 MoE 推理,Self-Speculative Decoding 怎么救场? EMNLP'23 | 不用额外模型,LLM 自己给自己加速——Self-Speculative Decoding 原理详解 ACL'24 | LayerSkip:Meta 把 Self-Speculative Decoding 从头训到尾,直接干到 2.16× 从图像到文本:Diffusion 模型原理全解——数学、结构、训练、推理一次讲清 贝叶斯优化从零推导:从「我对这个函数有个猜测」到自动调参 长音频转写慢 10 倍,99% 的 Attention 在白做功——MURMUR 如何破解这道难题 2026 | dLLM-ASR 让语音识别推理快 4.44 倍,还不掉精度 公司里那个一言不发的马尾辫大叔,现在被装进了你的 AI agent 里 SpecASR:ASR 专属 Speculative Decoding,让 LLM 语音识别快 3.79 倍 COLM'25 | PredGen:你还在说话,LLM 已经想好怎么回了 LLM agent 为什么不稳?问题可能不在模型,在 harness Meta-Harness:让 LLM 自己搜索最优 harness,模型不动,性能白涨 从零理解 ASR:音频基础、Qwen3-ASR 架构,以及离线 vs 流式推理原理 arXiv'26 | LLM Agents 让群体信念变得可编程:当 AI 开始系统性操控舆论 巴西「主权大模型」翻车:当模型可以随便融合,怎么证明它偷了你的权重? 进阶篇 | 不靠人工设计,让遗传算法自己进化出 SOTA 的 LLM 剪枝指标 说人话:一文搞懂现在火热的 LLM agent 自进化原理 ICML'26 | Transformer 真的需要三个投影矩阵吗?Q-K=V 让 KV Cache 直接砍半 UPenn & Meta | NF-CoT:当 LLM 的思维链不再是文字,而是连续概率流 arXiv'26 | 为什么你的多智能体系统越加 agent 越慢?DeLM 用去中心化解了这个矛盾 arXiv'26 | Self-Harness:让 Agent 自己改自己的 harness,pass rate 最高翻倍
TACC 集群使用笔记
marsggbo · 2024-04-10 · via 博客园 - marsggbo

1注册账号

先在网页上注册账号,之后需要联系导师或者管理员把你添加到对应的集群里去,例如我加入的是 Lonestar6 集群。

之后需要跟着这个教程绑定 MFA 软件(可以是 DUO 或者 1password)

MFA 绑定

之后登录账号,系统会要求先后输入你的账户密码和 MFA 的 6 位数 token

local@username$ ssh username@ls6.tacc.utexas.edu
(username@ls6.tacc.utexas.edu) Password:
(username@ls6.tacc.utexas.edu) TACC Token Code:

login1.ls6(22)$ cd $SCRATCH/
login1.ls6(23)$

密码都正确之后你会进入到 login 节点,在这里千万不能随意执行大规模的计算任务,因为很有可能会被封号。你需要使用 compute 节点执行计算任务。

Login 和 Compute 节点

成功登入后,默认进入 login 节点下的 /home目录,一般而言我们需要进入 /scratch 目录。大多数TACC HPC资源上挂载了三个文件系统:$HOME$WORK、和$SCRATCH,以下是它们的区别、使用场景和注意事项的总结:

在Lonestar6高性能计算系统中,HOMEWORKSCRATCH路径的使用场景分别如下:

  1. HOME路径
    • 使用场景:主要用于存储用户个人的文件,如配置文件、源代码、小型数据集等。
    • 特点:这个目录是用户个性化的,其他用户无法访问。它的空间通常较小,不适合存储大量数据。
    • 建议用途:存储个人设置、备份的代码、文档等。
  2. WORK路径
    • 使用场景:用于存储需要跨TACC系统共享的文件,如大型数据集、中间结果等。
    • 特点:WORK路径是全局共享的,可以在TACC的不同系统之间访问,空间相对较大。
    • 建议用途:共享项目数据、协作研究的大型文件、需要在不同系统间传输的数据。
  3. SCRATCH路径
    • 使用场景:用于存储计算作业期间产生的大量临时数据,尤其是那些不需要长期保留的数据。
    • 特点:SCRATCH路径提供快速访问,但空间有限,且不保证数据持久性。系统可能会定期清理这个目录中的数据。
    • 建议用途:存储计算作业的中间结果、大型临时数据文件、不需要长期保存的数据。
      总的来说,HOME路径适合个人文件和配置,WORK路径适合需要跨系统共享的文件,而SCRATCH路径则适用于临时和大量数据的存储。这些路径的设计旨在优化存储效率、数据共享和系统性能。

从实操性的角度说,进入computing node 后,默认先进入的是HOME目录,在这里你可以先设置好 conda 环境。接着,假如你要运行一个 pytorch 代码,你需要cd $SCRATCH 才能使用 GPU,这个目录下运行代码保存的日志是临时的,你需要将重要文件备份到 $WORK 目录下。

2. 交互式开发环境 idev

idev 是一个用于在TACC(Texas Advanced Computing Center)集群上创建交互式计算环境的命令行工具,可以在计算节点上创建一个交互式会话,可以在其中执行串行、OpenMP并行或MPI并行的代码,就像在批处理作业中一样。。以下是关于 idev 的一些主要用法和选项的介绍:

2.1 idev 参数选项:

  • -A account_name:设置账户名称(默认为 -A use_default)。
  • -m minutes:设置计算时间(默认为 30 分钟)。
  • -n total_tasks:设置总任务数。
  • -N nodes:设置节点数量。
  • -tpn tpn:设置每节点任务数。
  • -p queue_name:设置队列名称(默认为 -p development)。
  • -R:查找用户的预约。
  • -r reservation_name:请求使用特定的预约。
  • -r none:禁用预约检查。
  • -E:在作业开始时通知。
  • -e email_address:在作业开始时通过指定的电子邮件地址通知。
  • -t hh:mm:ss:设置计算时间(默认为 30 分钟)。
  • -queues:列出系统的队列。
  • -pselect:显示可选择的 Slurm 队列。
  • -qselect:显示可选择的 Slurm 队列。
  • -- <other SLURM options>:必须在所有 idev 选项之后使用,用于指定其他 Slurm 选项。

2.2 示例

# 默认设置:1 节点,16 任务,30 分钟,使用默认账户
idev

# 显示帮助信息
idev --help

# 设置队列、时间和账户
idev -p development -m 90 -A AB-ccviss

# 设置队列、时间、账户、节点和任务数
idev -p normal -t 00:90:00 -A TG-STA123 -N 2 -n 16

# 显示可选择的 Slurm 队列
idev -pselect

# 设置交互式会话的最长时间为2小时, 1个节点,4 个任务,请求在 development 队列中执行计算任务
idev -t 02:00:00 -N 1 -n 4 -p development

上面最后一个例子使用的是名为development的节点,你也可以先使用sinfo命令查看所有节点,然后手动设置成空闲的节点,例如:

$ sinfo
gpu-a100          up   infinite      1 drain* c317-003
gpu-a100          up   infinite     67  alloc c302-[001-004],c303-[001-004],c305-[001-002,004],c306-[002-004],c308-[001-004],c309-[001-004],c310-[001-004],c315-[001,003-016],c316-[001-002,007-016],c317-[001-002,004-008,010-016]
gpu-a100          up   infinite      5   idle c304-001,c305-003,c306-001,c316-003,c317-009
gpu-a100-dev      up   infinite      2  alloc c301-[001,004]
$ idev -t 02:00:00 -N 1 -n 4 -p gpu-a100-dev

上面命令会自动申请一个空闲的gpu-a100-dev节点。