[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-NVIDIA--jitify":3,"tool-NVIDIA--jitify":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":79,"owner_email":79,"owner_twitter":79,"owner_website":80,"owner_url":81,"languages":82,"stars":99,"forks":100,"last_commit_at":101,"license":102,"difficulty_score":103,"env_os":104,"env_gpu":105,"env_ram":106,"env_deps":107,"category_tags":117,"github_topics":118,"view_count":23,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":125,"updated_at":126,"faqs":127,"releases":157},2676,"NVIDIA\u002Fjitify","jitify","A single-header C++ library for simplifying the use of CUDA Runtime Compilation (NVRTC).","Jitify 是一个专为简化 CUDA 运行时编译（NVRTC）流程而设计的单头文件 C++ 库。在开发高性能 GPU 应用时，直接将 NVRTC 集成到现有代码或模板化程序中往往十分繁琐，需要处理大量底层 API 调用、名称修饰及依赖管理问题。Jitify 通过提供简洁的高层接口，将这些复杂细节完全封装，让开发者能够像编写普通 C++ 代码一样轻松实现核函数的即时编译与启动。\n\n这款工具特别适合 CUDA 开发者、高性能计算研究人员以及需要动态优化算法的工程师使用。其核心亮点在于支持从字符串、文件或可执行文件中灵活加载源码，自动忽略主机端代码并智能跳过非必要头文件。此外，Jitify 内置了编译缓存机制以提升运行效率，能够自动适配当前设备的计算能力，并完美支持标准库头文件的即时编译。借助其独特的模板参数反射功能和便捷的并行循环辅助函数，用户不仅可以大幅减少离线编译时间和代码体积，还能通过注入运行时常数快速进行性能调优。无论是希望快速移植旧项目，还是追求极致内核性能的场景，Jitify 都能提供稳定且跨平台（支持 Linux 和 Windows）的高效解决方案。","\n# Jitify\n\nA single-header C++ library for simplifying the use of CUDA Runtime Compilation (NVRTC).\n\n## Rationale\n\nIntegrating NVRTC into existing and\u002For templated CUDA code can be\ntricky. Jitify aims to simplify this process by hiding the\ncomplexities behind a simple, high-level interface.\n\n## Quick example\n\n```c++\nconst char* program_source = \"my_program\\n\"\n    \"template\u003Cint N, typename T>\\n\"\n    \"__global__\\n\"\n    \"void my_kernel(T* data) {\\n\"\n    \"    T data0 = data[0];\\n\"\n    \"    for( int i=0; i\u003CN-1; ++i ) {\\n\"\n    \"        data[0] *= data0;\\n\"\n    \"    }\\n\"\n    \"}\\n\";\nstatic jitify::JitCache kernel_cache;\njitify::Program program = kernel_cache.program(program_source);\n\u002F\u002F ...set up data etc.\ndim3 grid(1);\ndim3 block(1);\nusing jitify::reflection::type_of;\nprogram.kernel(\"my_kernel\")\n       .instantiate(3, type_of(*data))\n       .configure(grid, block)\n       .launch(data);\n```\n\n## Features\n\nJitify provides\u002Ftakes care of the following things:\n\n * All NVRTC and CUDA Driver API calls\n * Simple kernel instantiation and launch syntax\n * Caching compiled kernels\n * Loading source code from strings, files, or embedded in an executable\n * Ignoring host code in runtime-compiled sources\n * Skipping unneeded headers\n * Support for JIT-safe standard library headers (e.g., float.h, stdint.h etc.)\n * Dealing with kernel name mangling\n * Reflecting kernel template parameters into strings\n * Compiling specifically for the current device's compute capability\n * Linking to pre-compiled PTX\u002FCUBIN\u002FFATBIN\u002Fobject\u002Flibrary files\n * Support for CUDA versions 7.0, 7.5, 8.0, 9.x, 10.x, on both Linux and Windows\n * Convenient parallel_for function and lambda support\n * \\*New\\* jitify::experimental API provides serialization capabilities to enable [user-managed hashing and caching](https:\u002F\u002Fgithub.com\u002Frapidsai\u002Fcudf\u002Fblob\u002Fv0.12.0\u002Fcpp\u002Fsrc\u002Fjit\u002Fcache.h)\n\nThings you can do with Jitify and NVRTC:\n\n * *Rapidly port existing code* to use CUDA Runtime Compilation\n * *Dramatically reduce code volume* and offline-compilation times\n * *Increase kernel performance* by baking in runtime constants and autotuning\n\n## How to build\n\nJitify is just a single header file:\n\n```c++\n#include \u003Cjitify.hpp>\n```\n\nCompile with: `-pthread` (not needed if JITIFY_THREAD_SAFE is defined to 0)\n\nLink with: `-lcuda -lcudart -lnvrtc`\n\nA small utility called stringify is included for converting text files into\nC string literals, which provides a convenient way to integrate JIT-compiled\nsources into a build.\n\n### Running tests\n\nTests can be run with the following command:\n\n```shell\n$ make test\n```\n\nThis will automatically download and build the\n[GoogleTest](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fgoogletest) library, which\nrequires [CMake](https:\u002F\u002Fcmake.org) to be available on the system.\n\n## Documentation\n\n### Examples\n\nSee [jitify_example.cpp](jitify_example.cpp) for some examples of how to use the library.\nThe [Makefile](Makefile) also demonstrates how to use the provided stringify utility.\n\n[GTC 2017 Talk by Ben Barsdell and Kate Clark](https:\u002F\u002Fon-demand.gputechconf.com\u002Fgtc\u002F2017\u002Fvideos\u002Fs7716-barsdell-ben-jitify.mp4)\n\n### API documentation\n\nDoxygen documentation can be generated by running:\n\n```shell\n$ make doc\n```\n\nThe HTML and LaTeX results are placed into the doc\u002F subdirectory.\n\n## License\n\nBSD-3-Clause\n\n## Authors\n\nBen Barsdell (NVIDIA, bbarsdell at nvidia dot com)\n\nKate Clark (NVIDIA, mclark at nvidia dot com)\n","# Jitify\n\n一个单头文件的 C++ 库，用于简化 CUDA 运行时编译（NVRTC）的使用。\n\n## 设计动机\n\n将 NVRTC 集成到现有的或模板化的 CUDA 代码中可能会比较棘手。Jitify 的目标是通过提供一个简单、高层次的接口来隐藏这些复杂性，从而简化这一过程。\n\n## 快速示例\n\n```c++\nconst char* program_source = \"my_program\\n\"\n    \"template\u003Cint N, typename T>\\n\"\n    \"__global__\\n\"\n    \"void my_kernel(T* data) {\\n\"\n    \"    T data0 = data[0];\\n\"\n    \"    for( int i=0; i\u003CN-1; ++i ) {\\n\"\n    \"        data[0] *= data0;\\n\"\n    \"    }\\n\"\n    \"}\\n\";\nstatic jitify::JitCache kernel_cache;\njitify::Program program = kernel_cache.program(program_source);\n\u002F\u002F ...设置数据等\ndim3 grid(1);\ndim3 block(1);\nusing jitify::reflection::type_of;\nprogram.kernel(\"my_kernel\")\n       .instantiate(3, type_of(*data))\n       .configure(grid, block)\n       .launch(data);\n```\n\n## 特性\n\nJitify 提供并处理以下功能：\n\n * 所有 NVRTC 和 CUDA 驱动程序 API 调用\n * 简单的内核实例化和启动语法\n * 缓存已编译的内核\n * 从字符串、文件或嵌入在可执行文件中的源代码加载\n * 忽略运行时编译源中的主机代码\n * 跳过不必要的头文件\n * 支持 JIT 安全的标准库头文件（如 float.h、stdint.h 等）\n * 处理内核名称修饰问题\n * 将内核模板参数反射为字符串\n * 针对当前设备的计算能力进行专门编译\n * 链接预编译的 PTX\u002FCUBIN\u002FFATBIN\u002F对象文件或库\n * 支持 CUDA 7.0、7.5、8.0、9.x、10.x 版本，适用于 Linux 和 Windows 平台\n * 方便的 parallel_for 函数及 lambda 支持\n * \\*新增\\* jitify::experimental API 提供序列化功能，以实现 [用户管理的哈希与缓存](https:\u002F\u002Fgithub.com\u002Frapidsai\u002Fcudf\u002Fblob\u002Fv0.12.0\u002Fcpp\u002Fsrc\u002Fjit\u002Fcache.h)\n\n使用 Jitify 和 NVRTC 可以做到：\n\n * *快速移植现有代码* 以使用 CUDA 运行时编译\n * *大幅减少代码量* 并缩短离线编译时间\n * *提升内核性能*，通过在运行时嵌入常量和自动调优来实现\n\n## 如何构建\n\nJitify 只是一个单头文件：\n\n```c++\n#include \u003Cjitify.hpp>\n```\n\n编译时需添加：`-pthread`（如果 JITIFY_THREAD_SAFE 定义为 0，则无需此选项）\n\n链接时需添加：`-lcuda -lcudart -lnvrtc`\n\n此外，还包含一个名为 stringify 的小工具，用于将文本文件转换为 C 字符串字面量，从而方便地将 JIT 编译的源代码集成到构建流程中。\n\n### 运行测试\n\n可以通过以下命令运行测试：\n\n```shell\n$ make test\n```\n\n该命令会自动下载并构建 [GoogleTest](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fgoogletest) 库，而 GoogleTest 需要系统上安装 [CMake](https:\u002F\u002Fcmake.org)。\n\n## 文档\n\n### 示例\n\n请参阅 [jitify_example.cpp](jitify_example.cpp)，其中包含一些使用该库的示例。[Makefile](Makefile) 也展示了如何使用提供的 stringify 工具。\n\n[GTC 2017 演讲——Ben Barsdell 和 Kate Clark](https:\u002F\u002Fon-demand.gputechconf.com\u002Fgtc\u002F2017\u002Fvideos\u002Fs7716-barsdell-ben-jitify.mp4)\n\n### API 文档\n\n可以通过运行以下命令生成 Doxygen 文档：\n\n```shell\n$ make doc\n```\n\n生成的 HTML 和 LaTeX 文件将放置在 doc\u002F 子目录中。\n\n## 许可证\n\nBSD-3-Clause\n\n## 作者\n\nBen Barsdell（NVIDIA，邮箱：bbarsdell at nvidia dot com）\n\nKate Clark（NVIDIA，邮箱：mclark at nvidia dot com）","# Jitify 快速上手指南\n\nJitify 是一个单头文件的 C++ 库，旨在简化 CUDA 运行时编译（NVRTC）的使用。它通过高级接口隐藏了底层复杂性，支持模板内核的即时编译、缓存及自动处理名称修饰，帮助开发者快速移植代码并减少离线编译时间。\n\n## 环境准备\n\n在使用 Jitify 之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Linux 或 Windows。\n*   **CUDA Toolkit**：支持 CUDA 7.0 至 10.x 及更高版本（需包含 `nvrtc` 组件）。\n*   **编译器**：支持 C++11 或更高版本的 GCC\u002FClang (Linux) 或 MSVC (Windows)。\n*   **构建工具**：\n    *   `make` 和 `cmake`（仅运行测试或生成文档时需要）。\n    *   若需运行官方测试套件，需能访问互联网以自动下载 GoogleTest。\n\n## 安装步骤\n\nJitify 无需传统的安装过程，它是一个**单头文件库**。\n\n1.  **获取头文件**\n    从 GitHub 仓库下载 `jitify.hpp` 文件，并将其放置在项目的包含路径（include path）中，或直接复制到项目源码目录。\n    ```bash\n    # 示例：克隆仓库并复制头文件\n    git clone https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fjitify.git\n    cp jitify\u002Fjitify.hpp \u002Fyour\u002Fproject\u002Fpath\u002F\n    ```\n\n2.  **编译配置**\n    在编译包含 Jitify 的 C++ 源文件时，需添加以下标志：\n    *   **包含路径**：确保编译器能找到 `jitify.hpp`。\n    *   **线程支持**：添加 `-pthread` 标志（若在代码中定义了 `JITIFY_THREAD_SAFE 0` 则不需要）。\n    *   **链接库**：链接 CUDA 相关库 `-lcuda -lcudart -lnvrtc`。\n\n    **编译命令示例：**\n    ```bash\n    g++ -o my_app my_app.cu -I. -pthread -lcuda -lcudart -lnvrtc\n    ```\n    *(注：如果使用 nvcc 编译，通常也能直接识别这些依赖，但显式链接更稳妥)*\n\n## 基本使用\n\n以下是最小化的使用示例，展示了如何定义 CUDA 内核字符串、实例化模板参数并启动内核。\n\n```c++\n#include \u003Cjitify.hpp>\n#include \u003Ccuda_runtime.h>\n#include \u003Ciostream>\n\n\u002F\u002F 1. 定义 CUDA 内核源代码字符串\nconst char* program_source = \"my_program\\n\"\n    \"template\u003Cint N, typename T>\\n\"\n    \"__global__\\n\"\n    \"void my_kernel(T* data) {\\n\"\n    \"    T data0 = data[0];\\n\"\n    \"    for( int i=0; i\u003CN-1; ++i ) {\\n\"\n    \"        data[0] *= data0;\\n\"\n    \"    }\\n\"\n    \"}\\n\";\n\nint main() {\n    \u002F\u002F 2. 创建内核缓存对象\n    static jitify::JitCache kernel_cache;\n\n    \u002F\u002F 3. 构建程序对象\n    jitify::Program program = kernel_cache.program(program_source);\n\n    \u002F\u002F 模拟数据准备 (实际使用时请分配真实的 CUDA 内存)\n    float h_data = 2.0f;\n    float *d_data;\n    cudaMalloc(&d_data, sizeof(float));\n    cudaMemcpy(d_data, &h_data, sizeof(float), cudaMemcpyHostToDevice);\n\n    \u002F\u002F 4. 配置执行参数\n    dim3 grid(1);\n    dim3 block(1);\n\n    \u002F\u002F 5. 实例化模板并启动内核\n    \u002F\u002F instantiate 参数对应模板参数：\u003C3, float>\n    \u002F\u002F type_of(*d_data) 用于自动推导类型字符串\n    auto error = program.kernel(\"my_kernel\")\n           .instantiate(3, jitify::reflection::type_of(*d_data))\n           .configure(grid, block)\n           .launch(d_data);\n\n    if (error) {\n        std::cerr \u003C\u003C \"Kernel launch failed!\" \u003C\u003C std::endl;\n        return -1;\n    }\n\n    \u002F\u002F 等待完成并清理\n    cudaDeviceSynchronize();\n    cudaMemcpy(&h_data, d_data, sizeof(float), cudaMemcpyDeviceToHost);\n    std::cout \u003C\u003C \"Result: \" \u003C\u003C h_data \u003C\u003C std::endl; \u002F\u002F 输出应为 8.0 (2^3)\n    \n    cudaFree(d_data);\n    return 0;\n}\n```\n\n### 关键点说明\n*   **源代码格式**：内核代码必须以字符串形式提供，第一行通常是程序名（如 `\"my_program\\n\"`），用于内部标识。\n*   **模板实例化**：`.instantiate()` 方法接受模板参数值。使用 `jitify::reflection::type_of()` 可以方便地将 C++ 类型转换为 Jitify 需要的字符串格式。\n*   **自动缓存**：`JitCache` 会自动管理编译后的内核，避免重复编译相同的配置。\n*   **头文件处理**：Jitify 会自动忽略主机端代码，并支持常用的 JIT 安全标准头文件（如 `float.h`, `stdint.h` 等），无需手动处理复杂的 include 路径。","某高性能计算团队正在开发一款需要适配多种 GPU 架构的实时流体仿真软件，面临内核编译灵活性与部署复杂度的挑战。\n\n### 没有 jitify 时\n- **编译流程繁琐**：必须为每种目标 GPU 架构（Compute Capability）预先离线编译大量 PTX 或 CUBIN 文件，导致构建时间漫长且产物体积庞大。\n- **模板实例化困难**：C++ 模板内核在运行时难以动态确定参数，开发者需手动处理复杂的名称修饰（name mangling）和字符串反射逻辑，极易出错。\n- **代码耦合度高**：为了调用 NVRTC，必须在业务代码中嵌入大量冗长的 CUDA Driver API 和 NVRTC 底层调用，严重干扰核心算法逻辑。\n- **缺乏智能缓存**：每次程序启动都重新编译相同的内核源码，无法利用历史编译结果，导致用户等待时间过长。\n\n### 使用 jitify 后\n- **即时编译适配**：jitify 自动检测当前设备算力并即时编译最优代码，彻底消除了多架构预编译的需求，显著减小了发布包体积。\n- **语法简洁直观**：通过简单的 `.instantiate()` 接口即可自动处理模板参数反射和名称解析，让动态内核启动像普通函数调用一样自然。\n- **逻辑清晰纯粹**：仅需包含单个头文件，jitify 封装了所有底层 API 细节，使开发者能专注于流体算法本身而非编译器交互。\n- **内置高效缓存**：自动管理内核编译缓存，相同配置的内核首次编译后后续直接加载，大幅提升了程序的启动速度和响应效率。\n\njitify 通过将复杂的 CUDA 运行时编译过程抽象为简洁的高层接口，帮助团队实现了“一次编写，处处即时优化”的高效开发模式。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_jitify_e0f835d1.png","NVIDIA","NVIDIA Corporation","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FNVIDIA_7dcf6000.png","",null,"https:\u002F\u002Fnvidia.com","https:\u002F\u002Fgithub.com\u002FNVIDIA",[83,87,91,95],{"name":84,"color":85,"percentage":86},"C++","#f34b7d",77.9,{"name":88,"color":89,"percentage":90},"Cuda","#3A4E3A",20.2,{"name":92,"color":93,"percentage":94},"Makefile","#427819",1.2,{"name":96,"color":97,"percentage":98},"Shell","#89e051",0.7,570,74,"2026-03-28T17:29:57","BSD-3-Clause",4,"Linux, Windows","需要 NVIDIA GPU（支持 CUDA Runtime Compilation），具体型号和显存大小取决于用户编写的内核程序，未设定固定下限；支持 CUDA 版本 7.0, 7.5, 8.0, 9.x, 10.x","未说明",{"notes":108,"python":109,"dependencies":110},"这是一个单头文件 C++ 库，无需复杂构建过程，只需包含头文件并链接相关 CUDA 库即可。编译时需添加 -lcuda -lcudart -lnvrtc 参数。如果不需要线程安全，可定义 JITIFY_THREAD_SAFE 为 0 以移除对 pthread 的依赖。运行测试需要安装 CMake 以自动下载和构建 GoogleTest。","不适用 (这是一个 C++ 库)",[111,112,113,114,115,116],"CUDA Driver API","NVRTC (libnvrtc)","CUDA Runtime (libcudart)","libcuda","pthread (可选，除非定义 JITIFY_THREAD_SAFE=0)","CMake (仅用于运行测试)",[13],[119,120,121,122,123,124],"nvrtc","cuda","jit-compilation","runtime-compilation","cpp","single-header","2026-03-27T02:49:30.150509","2026-04-06T06:54:02.885630",[128,133,138,143,148,153],{"id":129,"question_zh":130,"answer_zh":131,"source_url":132},12396,"在 Windows 上构建时遇到 type_traits 编译错误怎么办？","该问题已通过 Pull Request #17 修复。如果您在 Windows 上运行示例时遇到 type_traits 相关的编译错误（如 'expected an identifier'），请确保您使用的是包含该修复的最新版本代码。如果问题仍然存在，可以尝试重新打开 Issue 或提交新问题。","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fjitify\u002Fissues\u002F16",{"id":134,"question_zh":135,"answer_zh":136,"source_url":137},12397,"如何在 Jitify 内核中使用 curand 库？","可以在 Jitify 内核中通过 `#include \u003Ccurand_kernel.h>` 使用 curand。如果遇到关于 `size_t` 定义模糊的错误，通常是因为编译器设置或头文件路径冲突。维护者已推送相关修复以解决转换警告问题。确保正确设置了 CUDA 包含目录（从 `CUDA_PATH` 获取），并尝试更新到包含最新修复的版本。","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fjitify\u002Fissues\u002F43",{"id":139,"question_zh":140,"answer_zh":141,"source_url":142},12398,"为什么包含 Thrust 头文件时会报错说 '\u003Cfunctional>' 不受支持？","这是因为 NVRTC 版本低于 11.0 时存在已知问题：它会自动将 `\u002Fusr\u002Finclude` 添加为包含路径，从而绕过了 Jitify 的头文件加载功能。解决方法有两种：1) 升级至 CUDA 11.0 或更高版本；2) 将 Thrust 移动到其他目录（或删除 `\u002Fusr\u002Finclude\u002Fthrust`，改用 CUDA Toolkit 自带的 `\u002Fusr\u002Flocal\u002Fcuda\u002Finclude\u002Fthrust`）。此外，Thrust 对 NVRTC 的支持尚不完善，目前仅测试了 `counting_iterator.h`，建议尽量使用 CUB 的块级 API。","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fjitify\u002Fissues\u002F81",{"id":144,"question_zh":145,"answer_zh":146,"source_url":147},12399,"在 Windows 上使用 CUDA 11.0 时遇到 'NVRTC_ERROR_INVALID_OPTION' 错误如何解决？","该错误通常是因为使用了不再支持的架构标志。从 CUDA 11.0 开始，`compute_30` 已被弃用。Jitify 会根据 GPU 架构自动添加 `-arch` 标志，但如果您手动指定了 `-arch=compute_30`，请将其更改为受支持的架构（如 `-arch=compute_35` 或更高）。如果问题依旧，尝试回退到 CUDA 10.2 可暂时解决。注意：NVRTC 文档可能尚未更新反映此变更。","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fjitify\u002Fissues\u002F75",{"id":149,"question_zh":150,"answer_zh":151,"source_url":152},12400,"Jitify 是否支持最新的 CUDA 11.x 版本？","是的，Jitify 支持 CUDA 11.x。虽然项目更新频率不高，但核心功能兼容较新版本的 CUDA。用户反馈表明，在 CUDA 11.2 上可以正常运行，部分之前的问题（如核心转储错误）在新版本中已消失。不过需注意，某些旧架构（如 compute_30）在 CUDA 11.0+ 中不再支持。","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fjitify\u002Fissues\u002F91",{"id":154,"question_zh":155,"answer_zh":156,"source_url":152},12401,"能否在 .cuh 头文件中重载运算符并在内核字符串中使用？","可以。运算符重载在 Jitify 中是支持的，许多用户和项目（如 FLAMEGPU2 和 GLM）都在 NVRTC 编译的内核中成功使用了运算符重载。关键挑战在于 NVRTC 不支持主机代码和系统头文件，因此必须确保编译器看到的头文件内容完全兼容设备代码。Jitify 提供了一组有限的系统头文件替代品，但可能需要额外工作来使现有头文件适配 NVRTC\u002FJitify。移除 `extern \"C\"` 可能导致 NVRTC 错误，需小心处理命名空间链接规范。",[]]