用英特尔oneAPI工具集跑通并行计算:三个可直接复现的示例与TaoToken配置
1. 从串行到异构oneAPI 并行计算到底解决什么问题如果你写过一段纯 C 的矩阵乘法跑 1024×1024 规模时盯着 CPU 单核占用 100%、其他核心围观那你已经踩到了并行计算的门槛。oneAPI 要解决的核心问题就是同一份源码通过 SYCL 抽象层编译后既能跑在多核 CPU 上也能丢给 Intel GPU 甚至 FPGA不用为每种硬件重写一遍 CUDA 或 OpenCL。SYCL 是什么你可以把它理解成「C 的并行方言」。它基于标准 C17用queue、buffer、accessor、parallel_for这几个概念把「数据在哪」和「计算在哪」解耦。DPC 则是 Intel 对 SYCL 的具体实现编译器基于 Clang/LLVM命令是icpx头文件早期是CL/sycl.hpp新版 oneAPI 2024 之后推荐sycl/sycl.hpp。适合谁看这篇三类人一是刚接触异构计算、想跑通第一个 SYCL 程序的 C 开发者二是手里有 Intel 核显或 Arc 独显、想验证加速比的学生和工程师三是已经在用 AI 编码工具Claude Code、Cline 等写并行代码但需要统一管理模型调用凭据的人。第三类我会在配置章节专门讲 TaoToken 怎么把 Key/API 通道收口。三个示例由浅入深向量加法理解 kernel 启动→ 矩阵乘法理解二维 range 与局部性→ 图像卷积理解边界处理与真实负载。每个都给完整 CMake、编译命令、运行验证。实测下来向量加法在 UHD 630 核显上相对单核 CPU 就有 35 倍提升矩阵乘法规模上去后差距更明显。先说清楚一个前提oneAPI 的运行时Level Zero、OpenCL需要正确安装sycl-ls能列出设备才算环境就绪。这一步没通后面所有 kernel 都会 fallback 到 CPU 甚至报No device of requested type。所以第 2 章先把工具链和凭据管理这两件「前置」讲透。2. 前置准备oneAPI 工具链安装与 TaoToken 凭据统一管理2.1 安装 oneAPI Base ToolkitLinux 下最省事的方式是用 Intel 官方 apt 源。以 Ubuntu 22.04 为例wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \ | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg /dev/null echo deb [signed-by/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main \ | sudo tee /etc/apt/sources.list.d/oneAPI.list sudo apt update sudo apt install intel-basekit intel-hpckitWindows 用户直接下 Intel oneAPI Base Toolkit 的离线安装包装完打开「Intel oneAPI command prompt」即可环境变量会自动 setvars。装完验证source /opt/intel/oneapi/setvars.sh icpx --version sycl-lssycl-ls正常输出类似[opencl:acc:0] Intel(R) FPGA Emulation Platform ... [opencl:cpu:1] Intel(R) OpenCL, 12th Gen Intel(R) Core(TM) i7-12700 ... [opencl:gpu:2] Intel(R) OpenCL HD Graphics, Intel(R) UHD Graphics 630 ... [level_zero:gpu:3] Intel(R) Level-Zero, Intel(R) UHD Graphics 630 ...看到level_zero:gpu就说明 GPU 运行时可用。如果只有 cpu 一行检查内核版本和intel-opencl-icd是否安装。2.2 为什么并行开发场景需要 TaoToken写 SYCL 代码时我经常同时开着 Claude Code 让它帮我补 kernel、解释accessor的 mode 语义或者用 Cline 在 VS Code 里做代码审查。这些 AI 编码工具各自要填 Base URL、API Key、Model ID工具一多凭据就散落在各个配置文件里换机器、换模型时非常痛苦。TaoToken 在这里的角色是「统一凭据通道」一个 Key 走通多个模型和工具Base URL 固定模型 ID 按需切换。它本身不是编译器、不是编辑器也不碰你的 SYCL 源码只负责把 AI 工具的调用请求收口到一处。官网入口在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 端点是 https://taotoken.net/api 。具体到配置Claude Code 走的是环境变量 settings 文件Cline 走的是 VS Code 插件设置里的 OpenAI Compatible 模式Codex 走auth.json。三者的共同点是都要填三件套Base URL、API Key、Model ID。下面第 3 章给可直接复制的片段。注意TaoToken 的 Key 只用于 AI 工具调用和 oneAPI 的编译运行完全无关。别把两者混在一个环境变量里否则排障时会互相干扰。2.3 目录结构约定后面三个示例统一用这个结构方便你直接复制oneapi-demo/ ├── CMakeLists.txt ├── src/ │ ├── vec_add.cpp │ ├── matmul.cpp │ └── conv2d.cpp └── build/CMake 最低版本 3.20因为IntelLLVM编译器 ID 和 SYCL 支持在这个版本后才稳定。3. 可复制配置CMake、DPC 编译参数与 AI 工具 settings 片段3.1 通用 CMakeLists.txtcmake_minimum_required(VERSION 3.20) project(oneapi_demo LANGUAGES CXX) set(CMAKE_CXX_COMPILER icpx) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) # SYCL 需要显式开启 add_compile_options(-fsycl -fsycl-targetsspir64) add_executable(vec_add src/vec_add.cpp) add_executable(matmul src/matmul.cpp) add_executable(conv2d src/conv2d.cpp) # 让每个 target 都链接 SYCL 运行时 foreach(t vec_add matmul conv2d) target_link_options(${t} PRIVATE -fsycl) endforeach()关键参数说明-fsycl开启 SYCL 编译-fsycl-targetsspir64生成 SPIR-V 中间码以便 JIT 到 GPU。如果你只想跑 CPU可以去掉 targets 参数编译更快。想看 kernel 的详细编译日志加-fsycl-device-code-splitper_kernel和-Rpasssycl。编译命令cd oneapi-demo source /opt/intel/oneapi/setvars.sh cmake -S . -B build -DCMAKE_BUILD_TYPERelease cmake --build build -j3.2 向量加法最小可运行 kernel#include sycl/sycl.hpp #include vector #include iostream constexpr size_t N 1 24; // 1600 万元素 int main() { std::vectorfloat a(N, 1.0f), b(N, 2.0f), c(N, 0.0f); sycl::queue q{sycl::gpu_selector_v}; std::cout Device: q.get_device().get_infosycl::info::device::name() \n; { sycl::bufferfloat, 1 bufA(a.data(), sycl::range1(N)); sycl::bufferfloat, 1 bufB(b.data(), sycl::range1(N)); sycl::bufferfloat, 1 bufC(c.data(), sycl::range1(N)); q.submit([](sycl::handler h) { auto accA bufA.get_accesssycl::access::mode::read(h); auto accB bufB.get_accesssycl::access::mode::read(h); auto accC bufC.get_accesssycl::access::mode::write(h); h.parallel_forstruct VecAdd(sycl::range1(N), [](sycl::id1 i) { accC[i] accA[i] accB[i]; }); }); q.wait(); } std::cout c[0] c[0] c[N-1] c[N-1] \n; return 0; }注意sycl::gpu_selector_v是 oneAPI 2023 之后的新写法老代码里的gpu_selector类已废弃。如果你的机器没有 GPU改成sycl::default_selector_v会自动选 CPU。3.3 Claude Code settings 片段Claude Code 的配置放在~/.claude/settings.json或项目级.claude/settings.json。把模型通道指向 TaoToken{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-你的TaoTokenKey, ANTHROPIC_MODEL: claude-sonnet-4-20250514 } }三件套对应关系Base URL https://taotoken.net/apiKey 你在控制台生成的sk-开头字符串Model ID 具体模型名。改完重启 Claude Code 生效。控制台地址在 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite Key 生成页在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 。3.4 ClineVS Code配置Cline 插件设置里选 API Provider 为「OpenAI Compatible」然后{ apiProvider: openai, openAiBaseUrl: https://taotoken.net/api, openAiApiKey: sk-你的TaoTokenKey, openAiModelId: claude-sonnet-4-20250514 }Cline 的 MCP 功能如果要用同样走这个 Base URL不需要额外配代理。MCP server 的启动命令保持本地即可别把生产数据库直连塞进 MCP这是安全红线。3.5 Codex auth.jsonCodex CLI 的凭据文件在~/.codex/auth.json{ OPENAI_API_KEY: sk-你的TaoTokenKey, OPENAI_BASE_URL: https://taotoken.net/api }模型 ID 在~/.codex/config.toml里指定model claude-sonnet-4-20250514三件套齐了Base URL、Key、Model ID。任何一处缺失Codex 启动时会报401 Unauthorized或model not found。4. 验证请求矩阵乘法与图像卷积的编译运行结果4.1 矩阵乘法二维 range 与局部内存#include sycl/sycl.hpp #include vector #include iostream constexpr int N 1024; constexpr int TS 16; // tile size int main() { std::vectorfloat A(N * N, 1.0f), B(N * N, 2.0f), C(N * N, 0.0f); sycl::queue q{sycl::gpu_selector_v}; std::cout Device: q.get_device().get_infosycl::info::device::name() \n; { sycl::bufferfloat, 2 bufA(A.data(), sycl::range2(N, N)); sycl::bufferfloat, 2 bufB(B.data(), sycl::range2(N, N)); sycl::bufferfloat, 2 bufC(C.data(), sycl::range2(N, N)); q.submit([](sycl::handler h) { auto accA bufA.get_accesssycl::access::mode::read(h); auto accB bufB.get_accesssycl::access::mode::read(h); auto accC bufC.get_accesssycl::access::mode::write(h); sycl::local_accessorfloat, 2 tileA(sycl::range2(TS, TS), h); sycl::local_accessorfloat, 2 tileB(sycl::range2(TS, TS), h); h.parallel_forstruct MatMul( sycl::nd_range2(sycl::range2(N, N), sycl::range2(TS, TS)), [](sycl::nd_item2 item) { int row item.get_global_id(0); int col item.get_global_id(1); int lr item.get_local_id(0); int lc item.get_local_id(1); float sum 0.0f; for (int t 0; t N / TS; t) { tileA[lr][lc] accA[row][t * TS lc]; tileB[lr][lc] accB[t * TS lr][col]; item.barrier(sycl::access::fence_space::local_space); for (int k 0; k TS; k) sum tileA[lr][k] * tileB[k][lc]; item.barrier(sycl::access::fence_space::local_space); } accC[row][col] sum; }); }); q.wait(); } std::cout C[0] C[0] C[N*N-1] C[N * N - 1] \n; return 0; }编译运行cmake --build build --target matmul ./build/matmul预期输出C[0]2048 C[N*N-1]2048因为 A 全 1、B 全 2每行点积 1024×2 2048。如果结果不对八成是barrier位置错了或 tile 索引写反。4.2 图像卷积边界处理#include sycl/sycl.hpp #include vector #include iostream constexpr int IMG 1024; constexpr int K 3; int main() { std::vectorfloat in(IMG * IMG, 1.0f), out(IMG * IMG, 0.0f); std::vectorfloat kernel {0.0625f, 0.125f, 0.0625f, 0.125f, 0.25f, 0.125f, 0.0625f, 0.125f, 0.0625f}; sycl::queue q{sycl::gpu_selector_v}; std::cout Device: q.get_device().get_infosycl::info::device::name() \n; { sycl::bufferfloat, 2 bufIn(in.data(), sycl::range2(IMG, IMG)); sycl::bufferfloat, 2 bufK(kernel.data(), sycl::range2(K, K)); sycl::bufferfloat, 2 bufOut(out.data(), sycl::range2(IMG, IMG)); q.submit([](sycl::handler h) { auto accIn bufIn.get_accesssycl::access::mode::read(h); auto accK bufK.get_accesssycl::access::mode::read(h); auto accOut bufOut.get_accesssycl::access::mode::write(h); h.parallel_forstruct Conv2D( sycl::range2(IMG - K 1, IMG - K 1), [](sycl::id2 idx) { int x idx[0], y idx[1]; float sum 0.0f; for (int i 0; i K; i) for (int j 0; j K; j) sum accIn[x i][y j] * accK[i][j]; accOut[x K / 2][y K / 2] sum; }); }); q.wait(); } std::cout out[0] out[0] out[512*1024512] out[512 * IMG 512] \n; return 0; }因为输入全 1、卷积核和为 1输出应该全是 1.0。如果中间出现 0说明边界写越界了。range2(IMG-K1, IMG-K1)保证不越界输出偏移K/2对齐中心。4.3 用 TaoToken 验证模型通道配好 Claude Code 后跑一句让它解释local_accessor和accessor的区别能正常返回就说明通道通了。模型对话入口在 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentchatutm_campaignrewrite 。如果你要长期跑 Agent 做代码重构Coding Plan 在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 。5. 常见报错排查从 401 到 reading choices 逐条对照5.1No device of requested type或gpu_selector抛异常现象程序启动直接 terminate提示找不到 GPU。原因通常是 Level Zero 驱动没装或权限不足。排查步骤sycl-ls clinfo | grep -i device name ls -l /dev/dri/如果/dev/dri/renderD128存在但 sycl-ls 看不到 GPU把当前用户加入render组sudo usermod -aG render $USER重新登录。容器环境需要--device/dev/dri透传。5.2local proxy failed/PI_ERROR_OUT_OF_RESOURCES这个报错常见于矩阵乘法 tile 太大或 local_accessor 申请超过设备上限。查设备局部内存std::cout q.get_device().get_infosycl::info::device::local_mem_size() \n;核显通常 64KBTS16时两个 tile 共 2×16×16×4 2KB没问题。如果你把 TS 调到 64就是 32KB接近上限。降 TS 或改用sycl::vec向量化。5.3 AI 工具侧401 UnauthorizedClaude Code 报 401先确认ANTHROPIC_API_KEY是不是sk-开头且没多余空格。Cline 报 401检查openAiBaseUrl末尾有没有多写/v1——TaoToken 的 Base URL 就是https://taotoken.net/api不要自己拼/v1/chat/completions。Codex 报 401看auth.json的 key 名是不是OPENAI_API_KEY写错成API_KEY会静默失败。5.4reading choices或choices field missing这是 OpenAI 兼容接口返回体解析失败。原因通常是 Model ID 填错服务端返回了错误 JSON 而不是标准 completion。对照三件套Base URL 必须是https://taotoken.net/apiModel ID 必须是控制台里列出的有效模型名。用 curl 直接验证curl https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer sk-你的Key \ -H Content-Type: application/json \ -d {model:claude-sonnet-4-20250514,messages:[{role:user,content:hi}]}返回里有choices数组就说明通道正常问题在客户端配置。5.5 OAuth 相关报错Claude Code 如果之前登录过官方账号~/.claude下可能残留 OAuth token和 settings.json 里的 API Key 冲突。清掉旧凭据删~/.claude/credentials.json如果存在只保留 settings.json 里的 env 配置。Codex 同理~/.codex/auth.json里不要同时留 OAuth 和 API Key 两套。5.6 编译期sycl/sycl.hpp not found说明setvars.sh没 source或者 CMake 没走 icpx。检查CMAKE_CXX_COMPILER是否指向icpxecho $CXX确认。用icpx -v看 include 路径里有没有/opt/intel/oneapi/compiler/latest/include。6. 把并行验证和 AI 编码通道一起收口三个示例跑完你应该已经能在本地看到 GPU 相对 CPU 的加速比了。向量加法这种 memory-bound 的 kernel核显上大概 35 倍矩阵乘法 compute-bound规模到 2048 后差距能拉到 10 倍以上卷积介于两者之间。真正的调优空间在 tile size、向量化宽度和 work-group 大小这些可以用-Rpasssycl看编译器反馈。我自己的习惯是SYCL kernel 写完先让 Claude Code 过一遍 accessor 的 mode 有没有写错read/write 混用是高频 bug再用 Cline 做一次边界检查。这些 AI 工具全部走 TaoToken 一个 Key换模型只改 Model IDBase URL 不动。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite Claude Code 专项说明在 https://taotoken.net/claudecode?utm_sourcetaotoken_aicg_blog_endutm_contentclaudecodeutm_campaignrewrite 。最后一个实用技巧把sycl::queue的构造包一层工厂函数通过环境变量SYCL_DEVICE_FILTER控制选 CPU 还是 GPU这样同一份二进制可以在 CI 上跑 CPU 验证、在本地跑 GPU 加速不用改代码。

相关新闻

Root 设备如何通过 PlayIntegrityFix 修复 Play Integrity 认证失败

Root 设备如何通过 PlayIntegrityFix 修复 Play Integrity 认证失败

Root 设备如何通过 PlayIntegrityFix 修复 Play Integrity 认证失败 【免费下载链接】PlayIntegrityFix Fix Play Integrity (and SafetyNet) verdicts. 项目地址: https://gitcode.com/GitHub_Trending/pl/PlayIntegrityFix PlayIntegrityFix 是一个基于 Zygisk 框架的…

2026/10/18 15:44:12 阅读更多 →
Linux环境手动安装Go 1.25工具链:从tar.gz到可编译运行的完整方案

Linux环境手动安装Go 1.25工具链:从tar.gz到可编译运行的完整方案

简介:go1.25.0.linux-amd64.tar.gz 是 Go 语言官方针对 Linux 平台 amd64 架构发布的二进制发行包,为 64 位 Linux 环境下的开发者、学习者和运维人员提供开箱即用的完整 Go 工具链。Go 语言以简洁的语法、高效的编译速度与强大的高并发支持著称&#xf…

2026/10/18 15:44:12 阅读更多 →
鱼眼相机去畸变算法详解:标定、参数与OpenCV代码实践

鱼眼相机去畸变算法详解:标定、参数与OpenCV代码实践

简介:面向计算机视觉与图像处理开发者,这份资源提供鱼眼相机去畸变算法的完整代码实现,覆盖经纬度矫正法与棋盘格矫正法两种主流方案。经纬度法基于球面映射几何原理,棋盘格法则利用OpenCV fisheye模块标定内参与畸变系数&#xf…

2026/10/18 15:44:12 阅读更多 →

最新新闻

电影推荐系统实战:协同过滤冷启动与稀疏数据处理

电影推荐系统实战:协同过滤冷启动与稀疏数据处理

简介:本资源是一套完整可用的Python电影推荐系统毕业设计项目,面向计算机专业本科生及初学者,解决课程设计、期末大作业与毕设选题中推荐算法实践落地难题。项目基于协同过滤算法构建,含全部可运行源码、真实用户-电影评分数据集、…

2026/10/18 16:35:37 阅读更多 →
偶像动态守夜人:多平台图片自动监听与归档系统

偶像动态守夜人:多平台图片自动监听与归档系统

简介:这是一套面向C#开发者与社交平台数据自动化管理爱好者的技术实践源码,聚焦SNH48系偶像动态监听与图片智能归档场景。项目基于C#多语言框架构建,整合微博、口袋48、B站等主流平台API监听能力,并通过QQ机器人实时推送新动态&am…

2026/10/18 16:35:37 阅读更多 →
货运Agent评测平台落地:五维指标、场景库与打分引擎实践

货运Agent评测平台落地:五维指标、场景库与打分引擎实践

做货运平台的业务 Agent 有一段时间了,一个很深的体会是:把 Agent 真正接到业务里,特别是货运这种重履约、重线下的场景,你缺的往往不是模型能力,而是一把能持续量化"它到底行不行"的尺子。我在某同城货运平…

2026/10/18 16:35:37 阅读更多 →
Spring Boot高校心理健康系统实战:架构设计与核心模块详解

Spring Boot高校心理健康系统实战:架构设计与核心模块详解

1. 项目整体设计:如何梳理高校心理健康系统的核心架构1.1 选题逻辑与需求还原动过毕设的人应该都有这种体会:选题最怕的不是难,而是“不好讲”。一个题目拿到手里,功能是csdn上复制粘贴就能凑齐的那种,答辩的时候导师问…

2026/10/18 16:35:37 阅读更多 →
损失函数与梯度下降:从习题到优化理论的完整拆解

损失函数与梯度下降:从习题到优化理论的完整拆解

1. 从习题入手:这组问题到底在考什么优化理论、损失函数、梯度下降,这三个词放在一块儿,听起来像是人工智能课程里最“数学”的一章。很多同学拿到这组习题的第一反应是:公式太多,不知道从哪里下手。我带过好几轮入门人…

2026/10/18 16:35:37 阅读更多 →
Vue3 + Element Plus 前端导出 Excel 的完整实现指南

Vue3 + Element Plus 前端导出 Excel 的完整实现指南

写这篇帖子之前,我特意翻了翻之前的聊天记录,发现“前端怎么导出Excel”这个问题几乎每隔几周就会被同事或者群友翻出来问一次。别小看这个功能,它不像写页面样式、调接口那么“有存在感”,但它实实在在地是后台管理系统里的高频刚…

2026/10/18 16:34:37 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →