ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Intel oneAPI 2024 HPC toolkit 离线静默安装:非交互式自定义组件配置指南

Intel oneAPI 2024 HPC toolkit 离线静默安装:非交互式自定义组件配置指南 1. 无网络机房里的 oneAPI 安装为什么我坚持用静默模式如果你在 HPC 集群、内网机房或者 CI 流水线里装过 Intel oneAPI大概率遇到过这种场景机器不能连外网交互式安装脚本跑起来之后弹出一堆 TUI 界面选组件、点同意、等进度条中途 SSH 一断就前功尽弃。更麻烦的是批量装机十台机器手动点十遍版本还不一定一致。Intel oneAPI 2024 HPC toolkit 的离线静默安装非交互式就是解决这个问题的把 offline 安装包提前下载好用--silent加--components参数一次性指定要装的组件全程不需要人工干预脚本可复现、可进 CI、可写进 Kickstart 或 Ansible。适合谁需要批量部署 HPC 编译环境的运维、做 CI 镜像的工程师、以及像我这样被交互式安装 bug 折腾过的人。这篇以l_HPCKit_p_2024.0.1.38_offline.sh为例给出可复制的 silent 配置骨架、组件筛选参数、安装后验证命令最后说下装完之后 AI 工具链怎么用统一 Key 通道管理避免每台机器散落一堆 API Key。2. 前置准备离线包、目录规划与 TaoToken 通道2.1 离线包获取与校验在有网的机器上下载 HPC toolkit 2024 的 offline 包文件名形如l_HPCKit_p_2024.0.1.38_offline.sh体积通常在 5GB 以上。下载完建议核对官方提供的 SHA256再 scp 到目标机器。目标机器只需要有基础的bash、tar、gzip不需要 gcc 或 Python 环境。mkdir -p /opt/soft/intel cd /opt/soft/intel # 假设离线包已经 scp 到当前目录 ls -lh l_HPCKit_p_2024.0.1.38_offline.sh sha256sum l_HPCKit_p_2024.0.1.38_offline.sh2.2 安装目录与权限决策oneAPI 默认安装路径分两种root 用户装到/opt/intel/oneapi普通用户装到$HOME/intel/oneapi。批量装机我建议统一用 root 装到/opt/intel/oneapi这样多用户共享、环境变量路径固定CI 里也好写。如果集群策略不允许 root那就固定一个服务账号把$HOME路径写进配置模板。2.3 为什么这里要提 TaoToken装完 oneAPI 只是第一步后面跑 AI 辅助编码、调模型接口时每台机器都要配 Key、配 base_url散着管很容易乱。我现在的做法是用 TaoToken 做统一通道一个 Key 覆盖多家模型接入地址统一走https://taotoken.net/api换模型只改 model 名不用改代码里的 endpoint。官网入口在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 注册后在控制台生成 Key 即可。这样 oneAPI 负责本地编译TaoToken 负责远端模型调用两条线互不干扰。3. 可复制的静默安装配置与组件筛选3.1 先列出所有可选组件静默安装前必须知道组件 ID否则--components参数没法写。用-a加--list-components列出全部组件注意这一步不需要真正安装。cd /opt/soft/intel bash l_HPCKit_p_2024.0.1.38_offline.sh -a --eula accept --list-components输出会是一长串intel.oneapi.lin.xxx形式的 ID。HPC 场景常用的几个组件 ID用途intel.oneapi.lin.dpcpp-cpp-compilerDPC/C 编译器icpxintel.oneapi.lin.ifort-compilerFortran 编译器ifxintel.oneapi.lin.mpi.develIntel MPI 开发库intel.oneapi.lin.mkl.develoneMKL 数学库intel.oneapi.lin.tbb.develoneTBB 线程库3.2 silent.cfg 配置骨架官方安装器支持把参数写进配置文件避免命令行过长。在离线包同级目录建一个silent.cfg# silent.cfg - Intel oneAPI 2024 HPC toolkit 静默安装配置 ACCEPT_EULAaccept CONTINUE_WITH_OPTIONAL_ERRORyes PSET_INSTALL_DIR/opt/intel/oneapi CONTINUE_WITH_INSTALLDIR_OVERWRITEyes COMPONENTSintel.oneapi.lin.dpcpp-cpp-compiler:intel.oneapi.lin.ifort-compiler:intel.oneapi.lin.mpi.devel PSET_MODEinstall PHONEHOME_SEND_USAGE_DATAno几个关键点COMPONENTS多个组件用冒号:分隔不要用逗号PSET_INSTALL_DIR决定安装根目录PHONEHOME_SEND_USAGE_DATAno在无网环境必须关掉否则安装器会尝试联网上报导致卡住。3.3 执行静默安装cd /opt/soft/intel bash l_HPCKit_p_2024.0.1.38_offline.sh -a --silent --eula accept \ --components intel.oneapi.lin.dpcpp-cpp-compiler:intel.oneapi.lin.ifort-compiler:intel.oneapi.lin.mpi.devel如果不想用命令行拼组件也可以直接--silent配合-s silent.cfg读取配置文件。实测下来命令行方式在 CI 里更直观配置文件方式适合 Ansible 模板渲染。注意--action install是默认行为首次安装可以省略但后续补装组件必须显式写--action modify否则安装器会当成全新安装。3.4 后续补装组件不能删旧的这是踩过的坑补装组件时--components必须把原有组件一起列上否则安装器会把没列出的组件卸载掉。比如已经装了 dpcpp 和 ifort现在要加 mpibash l_HPCKit_p_2024.0.1.38_offline.sh -a --action modify --silent --eula accept \ --components intel.oneapi.lin.dpcpp-cpp-compiler:intel.oneapi.lin.ifort-compiler:intel.oneapi.lin.mpi.devel三个组件一个都不能少这是 modify 模式和 install 模式最大的区别。4. 验证安装结果与编译器可用性4.1 检查组件安装状态bash l_HPCKit_p_2024.0.1.38_offline.sh -a --eula accept --list-components已安装的组件会标记为 installed未安装的显示 not installed。这一步不需要 root普通用户也能查。4.2 加载环境变量oneAPI 不会自动写进/etc/profile需要手动 source。root 安装路径source /opt/intel/oneapi/setvars.sh普通用户安装路径source $HOME/intel/oneapi/setvars.shCI 里建议把 source 写进构建脚本开头或者用setvars.sh --force避免重复 source 报错。4.3 验证编译器版本icx --version ifx --version mpirun --version正常输出类似Intel(R) oneAPI DPC/C Compiler 2024.0.2 (2024.0.2.20231213) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /opt/intel/oneapi/compiler/2024.0/bin/compilerifx输出ifx (IFX) 2024.0.2 20231213mpirun输出 Intel MPI 版本号。三个都出来说明编译器、Fortran、MPI 都装好了。4.4 编译一个最小测试程序cat hello.cpp EOF #include iostream int main() { std::cout oneAPI HPC toolkit OK std::endl; return 0; } EOF icpx -O2 hello.cpp -o hello ./hello输出oneAPI HPC toolkit OK就说明工具链完整可用。Fortran 用户把icpx换成ifx源文件换成.f90即可。5. 本篇常见报错与排查5.1 安装器卡在 Checking for network无网环境下安装器默认会尝试联网检查更新。解决办法是在 silent.cfg 里加PHONEHOME_SEND_USAGE_DATAno或者命令行加--ignore-signature跳过签名联网校验。如果已经卡住CtrlC 中断后重新跑加上上述参数。5.2--components报 component not found组件 ID 拼写错误或者该组件不在当前 HPC toolkit 包里。先用--list-components确认 ID 全称注意大小写和点号。HPC toolkit 不包含某些 AI 分析组件那些在 AI toolkit 里别混用。5.3 modify 之后原组件消失就是 3.4 说的坑modify 时--components只写了新组件安装器把旧的卸载了。补救办法是重新 modify把新旧组件全部列上。所以补装前先--list-components记下已装列表。5.4setvars.sh报 already initialized重复 source 导致。用source /opt/intel/oneapi/setvars.sh --force强制刷新或者在脚本里判断$SETVARS_COMPLETED变量再决定是否 source。5.5 普通用户装完 root 找不到安装路径不同导致的。root 装到/opt/intel/oneapi普通用户装到$HOME/intel/oneapi。批量装机统一用 root 或统一服务账号避免路径分裂。CI 镜像里固定一个路径写死进 Dockerfile。5.6 安装后 AI 工具连不上模型oneAPI 装好只解决本地编译AI 辅助编码需要另外配模型通道。这时候用 TaoToken 的 API 地址https://taotoken.net/api作为 base_urlKey 从控制台生成。如果报 401检查 Key 是否带上了Bearer前缀报 404检查 base_url 是否漏了/api。接入文档在 https://taotoken.net/doc 里面有各语言 SDK 的配置示例。6. 装完之后用统一 Key 通道收口 AI 工具链oneAPI 静默安装解决的是本地编译环境可复现但 HPC 工程师现在越来越多地在工作流里接 AI 辅助代码补全、报错解释、性能调优建议。如果每台机器、每个工具都单独配 Key批量装机就白做了。我的做法是分两层底层用这篇的 silent 安装把 oneAPI 固定到/opt/intel/oneapi写进镜像上层用 TaoToken 统一 Key所有 AI 工具走同一个 base_url。这样换模型、加机器都只动一处配置。控制台在 https://taotoken.net/console Key 管理在 https://taotoken.net/api-keys 生成后写进环境变量TAOTOKEN_API_KEY工具侧读这个变量即可。如果你在跑长期编码任务或者 Agent 流水线可以看下 Coding Planhttps://taotoken.net/coding-plan 按额度走比按次调用更适合 CI 场景。模型对话调试入口在 https://taotoken.net/models Claude Code 接入参考 https://taotoken.net/claudecode 。这些链接都带utm_sourcetaotoken_aicg_blog_endutm_campaignrewrite方便你回溯来源。最后给个批量装机的收尾脚本片段把 oneAPI 安装和 Key 注入串起来#!/bin/bash set -e # 1. oneAPI 静默安装 cd /opt/soft/intel bash l_HPCKit_p_2024.0.1.38_offline.sh -a --silent --eula accept \ --components intel.oneapi.lin.dpcpp-cpp-compiler:intel.oneapi.lin.ifort-compiler # 2. 环境变量 echo source /opt/intel/oneapi/setvars.sh --force /etc/profile.d/oneapi.sh # 3. AI 通道 Key从密钥管理系统注入不要硬编码 echo export TAOTOKEN_API_KEY$(cat /run/secrets/taotoken_key) /etc/profile.d/taotoken.sh # 4. 验证 source /etc/profile.d/oneapi.sh icpx --version echo oneAPI readyKey 从密钥管理系统读不要写死在脚本里这是批量装机的基本纪律。oneAPI 管编译TaoToken 管模型调用两条线各自可复现装机才算真正收口。
返回列表