[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-hughperkins--tf-coriander":3,"tool-hughperkins--tf-coriander":62},[4,18,26,36,46,54],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},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,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},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 真正成长为懂上",159636,2,"2026-04-17T23:33:34",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":42,"last_commit_at":43,"category_tags":44,"status":17},8272,"opencode","anomalyco\u002Fopencode","OpenCode 是一款开源的 AI 编程助手（Coding Agent），旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件，而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码，还是排查难以定位的 Bug，OpenCode 都能通过自然语言交互高效完成，显著减少开发者在重复性劳动和上下文切换上的时间消耗。\n\n这款工具专为软件开发者、工程师及技术研究人员设计，特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构，这意味着用户可以审查代码逻辑、自定义行为策略，甚至私有化部署以保障数据安全，彻底打破了传统闭源 AI 助手的“黑盒”限制。\n\n在技术体验上，OpenCode 提供了灵活的终端界面（Terminal UI）和正在测试中的桌面应用程序，支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具，安装便捷，并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客，还是渴望提升产出的独立开发者，OpenCode 都提供了一个透明、可信",144296,1,"2026-04-16T14:50:03",[13,45],"插件",{"id":47,"name":48,"github_repo":49,"description_zh":50,"stars":51,"difficulty_score":32,"last_commit_at":52,"category_tags":53,"status":17},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":55,"name":56,"github_repo":57,"description_zh":58,"stars":59,"difficulty_score":32,"last_commit_at":60,"category_tags":61,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[45,13,15,14],{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":76,"owner_location":76,"owner_email":76,"owner_twitter":76,"owner_website":77,"owner_url":78,"languages":79,"stars":118,"forks":119,"last_commit_at":120,"license":121,"difficulty_score":122,"env_os":123,"env_gpu":124,"env_ram":125,"env_deps":126,"category_tags":132,"github_topics":133,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":142,"updated_at":143,"faqs":144,"releases":178},8845,"hughperkins\u002Ftf-coriander","tf-coriander","OpenCL 1.2 implementation for Tensorflow","tf-coriander 是一款让 TensorFlow 能够在支持 OpenCL 1.2 标准的硬件上运行的开源项目。它的核心目标是打破深度学习框架对 NVIDIA CUDA 生态的依赖，解决用户因缺乏 NVIDIA 显卡而无法利用 GPU 加速训练模型的痛点。无论是使用 AMD 显卡的 Mac 用户，还是拥有其他兼容 OpenCL 设备的研究者，都能通过它部署和运行 TensorFlow 任务。\n\n该项目特别适合需要在非 NVIDIA 硬件上进行深度学习开发与实验的研究人员及开发者。其独特的技术架构在于“无侵入式”转换：TensorFlow 原有的 CUDA 代码无需修改，而是通过集成的 Coriander 编译器实时将其转换为 OpenCL 代码，同时结合 CLBlast 库高效处理矩阵运算等底层数学任务。这种设计既保留了原生 TensorFlow 的代码兼容性，又成功将计算后端扩展到了更广泛的硬件平台。虽然部分高级功能仍在完善中，但它已能支持包括循环神经网络（RNN）在内的多种经典模型运行，为异构计算环境下的 AI 探索提供了极具价值的替代方案。","# Tensorflow-cl\n\nRun [Tensorflow](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Ftensorflow) on OpenCL™ 1.2 devices\n\n- tested on:\n  - Mac Sierra using Radeon Pro 450 GPU (thank you [ASAPP](http:\u002F\u002Fasapp.com) :-) )\n  - Ubuntu 16.04, using NVIDIA K520\n- should work theoretically on any OpenCL 1.2 GPU\n\n## Piccie\n\nOn a Mac:\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhughperkins_tf-coriander_readme_8736b21ef7e2.png\" \u002F>\n\n## Execution speed\n\n- [Execution speed](doc\u002Fexecution_speed.md)\n\n## What's working\n\n- [What's working](doc\u002Fwhats_working.md)\n\n## Installation\n\n- [Installation](doc\u002Finstallation.md)\n\n## Tests\n\n- [Tests](doc\u002Ftesting.md)\n\n## Design\u002Farchitecture\n\n- tensorflow code stays 100% [NVIDIA® CUDA™](https:\u002F\u002Fwww.nvidia.com\u002Fobject\u002Fcuda_home_new.html)\n- [Coriander](https:\u002F\u002Fgithub.com\u002Fhughperkins\u002FCoriander) compiles the NVIDIA® CUDA™ code into OpenCL\n- Cedric Nugteren's [CLBlast](https:\u002F\u002Fgithub.com\u002FCNugteren\u002FCLBlast) provides BLAS (matrix multiplications)\n\nPresentation on [Coriander](https:\u002F\u002Fgithub.com\u002Fhughperkins\u002FCoriander) at this year's [IWOCL 2017](http:\u002F\u002Fwww.iwocl.org\u002Fiwocl-2017\u002Fconference-program\u002F)\n\n## Related projects\n\n- [OpenCL Torch](https:\u002F\u002Fgithub.com\u002Fhughperkins\u002Fdistro-cl)\n- [DeepCL](https:\u002F\u002Fgithub.com\u002Fhughperkins\u002FDeepCL)\n\n## News\n\n- June 11 2017:\n  - set up Jenkins build, which makes build logs and a Ubuntu 16.04 wheel available for certain commits, https:\u002F\u002Fgithub.com\u002Fhughperkins\u002Ftf-coriander\u002Fcommits\u002Fexample-jenkins-builds (click on one of the green ticks)\n- June 7 2017:\n  - created [v0.18.3](https:\u002F\u002Fgithub.com\u002Fhughperkins\u002Ftf-coriander\u002Freleases\u002Ftag\u002Fv0.18.3) release:\n    - `tf.split` enabled\n    - following examples from Aymeric Damien's [Tensorflow-Examples](https:\u002F\u002Fgithub.com\u002Faymericdamien\u002FTensorFlow-Examples) run now:\n      - [recurrent_network.py](https:\u002F\u002Fgithub.com\u002Fhughperkins\u002FTensorFlow-Examples\u002Fblob\u002Fenforce-gpu\u002Fexamples\u002F3_NeuralNetworks\u002Frecurrent_network.py)\n      - [bidirectional_rnn.py](https:\u002F\u002Fgithub.com\u002Fhughperkins\u002FTensorFlow-Examples\u002Fblob\u002Fenforce-gpu\u002Fexamples\u002F3_NeuralNetworks\u002Fbidirectional_rnn.py)\n      - [dynamic_rnn.py](https:\u002F\u002Fgithub.com\u002Fhughperkins\u002FTensorFlow-Examples\u002Fblob\u002Fenforce-gpu\u002Fexamples\u002F3_NeuralNetworks\u002Fdynamic_rnn.py)\n","# Tensorflow-cl\n\n在 OpenCL™ 1.2 设备上运行 [TensorFlow](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Ftensorflow)\n\n- 已测试设备：\n  - Mac Sierra，配备 Radeon Pro 450 GPU（感谢 [ASAPP](http:\u002F\u002Fasapp.com) :-)）\n  - Ubuntu 16.04，配备 NVIDIA K520\n- 理论上应在任何支持 OpenCL 1.2 的 GPU 上运行\n\n## 图片\n\n在 Mac 上：\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhughperkins_tf-coriander_readme_8736b21ef7e2.png\" \u002F>\n\n## 执行速度\n\n- [执行速度](doc\u002Fexecution_speed.md)\n\n## 当前已实现的功能\n\n- [当前已实现的功能](doc\u002Fwhats_working.md)\n\n## 安装\n\n- [安装](doc\u002Finstallation.md)\n\n## 测试\n\n- [测试](doc\u002Ftesting.md)\n\n## 设计\u002F架构\n\n- TensorFlow 代码保持 100% 兼容 [NVIDIA® CUDA™](https:\u002F\u002Fwww.nvidia.com\u002Fobject\u002Fcuda_home_new.html)\n- [Coriander](https:\u002F\u002Fgithub.com\u002Fhughperkins\u002FCoriander) 将 NVIDIA® CUDA™ 代码编译为 OpenCL\n- Cedric Nugteren 的 [CLBlast](https:\u002F\u002Fgithub.com\u002FCNugteren\u002FCLBlast) 提供 BLAS（矩阵乘法）功能\n\n今年的 [IWOCL 2017](http:\u002F\u002Fwww.iwocl.org\u002Fiwocl-2017\u002Fconference-program\u002F) 上关于 [Coriander](https:\u002F\u002Fgithub.com\u002Fhughperkins\u002FCoriander) 的演讲\n\n## 相关项目\n\n- [OpenCL Torch](https:\u002F\u002Fgithub.com\u002Fhughperkins\u002Fdistro-cl)\n- [DeepCL](https:\u002F\u002Fgithub.com\u002Fhughperkins\u002FDeepCL)\n\n## 最新消息\n\n- 2017年6月11日：\n  - 搭建了 Jenkins 构建系统，针对特定提交生成构建日志和 Ubuntu 16.04 轮子包，详见：https:\u002F\u002Fgithub.com\u002Fhughperkins\u002Ftf-coriander\u002Fcommits\u002Fexample-jenkins-builds（点击绿色勾号之一）\n- 2017年6月7日：\n  - 发布了 [v0.18.3](https:\u002F\u002Fgithub.com\u002Fhughperkins\u002Ftf-coriander\u002Freleases\u002Ftag\u002Fv0.18.3) 版本：\n    - 启用了 `tf.split`\n    - 现可运行 Aymeric Damien 的 [TensorFlow-Examples](https:\u002F\u002Fgithub.com\u002Faymericdamien\u002FTensorFlow-Examples) 中的以下示例：\n      - [recurrent_network.py](https:\u002F\u002Fgithub.com\u002Fhughperkins\u002FTensorFlow-Examples\u002Fblob\u002Fenforce-gpu\u002Fexamples\u002F3_NeuralNetworks\u002Frecurrent_network.py)\n      - [bidirectional_rnn.py](https:\u002F\u002Fgithub.com\u002Fhughperkins\u002FTensorFlow-Examples\u002Fblob\u002Fenforce-gpu\u002Fexamples\u002F3_NeuralNetworks\u002Fbidirectional_rnn.py)\n      - [dynamic_rnn.py](https:\u002F\u002Fgithub.com\u002Fhughperkins\u002FTensorFlow-Examples\u002Fblob\u002Fenforce-gpu\u002Fexamples\u002F3_NeuralNetworks\u002Fdynamic_rnn.py)","# tf-coriander 快速上手指南\n\ntf-coriander 是一个允许在支持 OpenCL 1.2 的设备（如 AMD GPU、Intel 集成显卡或部分 NVIDIA GPU）上运行 TensorFlow 的开源项目。它通过 Coriander 工具将原本为 CUDA 编写的代码实时转换为 OpenCL 代码，从而摆脱对 NVIDIA CUDA 生态的强依赖。\n\n## 环境准备\n\n### 系统要求\n- **操作系统**：\n  - macOS (测试版本：Sierra)\n  - Linux (测试版本：Ubuntu 16.04)\n- **硬件设备**：任何支持 **OpenCL 1.2** 的 GPU。\n  - 已测试设备：Mac Radeon Pro 450, NVIDIA K520 (Linux)。\n- **驱动要求**：确保已安装对应 GPU 厂商最新的 OpenCL 驱动程序。\n\n### 前置依赖\n在开始之前，请确保系统已安装以下基础开发工具：\n- Python (建议 2.7 或 3.x，视具体 TensorFlow 版本而定)\n- CMake\n- Git\n- OpenCL SDK \u002F Headers\n- BLAS 库 (项目依赖 CLBlast)\n\n> **注意**：本项目主要面向开发者进行底层编译和测试，官方文档未提供预编译的 PyPI wheel 直接安装命令（除特定 Jenkins 构建外），通常需要从源码构建。\n\n## 安装步骤\n\n由于该项目涉及将 CUDA 代码动态转换为 OpenCL，安装过程主要是构建核心引擎 `Coriander` 及 `tf-coriander` 本身。\n\n### 1. 克隆项目源码\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fhughperkins\u002Ftf-coriander.git\ncd tf-coriander\n```\n\n### 2. 获取子模块\n项目依赖 `Coriander` 编译器和其他组件，需初始化子模块：\n```bash\ngit submodule update --init --recursive\n```\n\n### 3. 构建与安装\n根据官方架构设计，你需要先构建 Coriander，然后构建 TensorFlow 的 OpenCL 版本。以下是通用的构建流程（基于 CMake）：\n\n```bash\n# 创建构建目录\nmkdir build\ncd build\n\n# 配置 CMake (可根据需要指定 OpenCL 路径)\ncmake ..\n\n# 编译\nmake -j$(nproc)\n\n# 安装 (可能需要 sudo)\nsudo make install\n```\n\n> **提示**：对于 Ubuntu 用户，可以查看项目 Jenkins 构建记录获取特定 commit 的预编译 wheel 包（`.whl` 文件），通过 `pip install \u003Cfilename>.whl` 进行安装，以节省编译时间。\n> 访问地址：https:\u002F\u002Fgithub.com\u002Fhughperkins\u002Ftf-coriander\u002Fcommits\u002Fexample-jenkins-builds (点击绿色对勾图标下载 artifacts)。\n\n### 4. 验证安装\n安装完成后，可以通过 Python 检查 TensorFlow 是否能识别到 OpenCL 设备：\n\n```python\nimport tensorflow as tf\n\n# 列出本地设备\nfrom tensorflow.python.client import device_lib\nprint(device_lib.list_local_devices())\n```\n如果配置成功，你应该能看到类型为 `GPU` 且包含 OpenCL 相关信息的设备条目。\n\n## 基本使用\n\n一旦安装完成，使用方式与原生的 TensorFlow 几乎完全一致。你无需修改现有的 TensorFlow 模型代码，只需确保操作被调度到 GPU 上即可。\n\n### 最简单示例：矩阵乘法\n\n以下代码演示了如何在 OpenCL 设备上执行基本的矩阵运算：\n\n```python\nimport tensorflow as tf\n\n# 定义常量矩阵\na = tf.constant([[1.0, 2.0], [3.0, 4.0]])\nb = tf.constant([[1.0, 1.0], [0.0, 1.0]])\n\n# 定义矩阵乘法操作\nc = tf.matmul(a, b)\n\n# 创建会话并运行\nwith tf.Session() as sess:\n    result = sess.run(c)\n    print(result)\n    \n    # 确认操作是否在 GPU 上运行\n    # 可以在运行时添加日志级别查看设备放置情况\n    print(\"Calculation completed on OpenCL device.\")\n```\n\n### 运行现有示例\n根据项目更新日志，以下经典的 TensorFlow 示例已在该环境下验证通过：\n- 循环神经网络 (`recurrent_network.py`)\n- 双向 RNN (`bidirectional_rnn.py`)\n- 动态 RNN (`dynamic_rnn.py`)\n\n你只需将上述示例脚本中的 `import tensorflow as tf` 指向你安装的 tf-coriander 环境即可直接运行。\n\n### 性能调优提示\n- 首次运行时，Coriander 需要将 CUDA 内核编译为 OpenCL 内核，因此启动速度可能会稍慢。\n- 确保你的 OpenCL 驱动是最新版本，以获得最佳的 `CLBlast` (BLAS 库) 加速效果。","某高校计算机视觉实验室的研究团队试图在配备 AMD Radeon 显卡的 Mac 工作站上复现最新的循环神经网络（RNN）论文，但受限于硬件生态面临停滞。\n\n### 没有 tf-coriander 时\n- **硬件闲置浪费**：实验室现有的高性能 AMD GPU 无法运行依赖 NVIDIA CUDA 生态的 TensorFlow，只能被迫使用低速 CPU 进行训练，算力利用率不足 10%。\n- **高昂迁移成本**：为了跑通代码，团队不得不申请预算购买昂贵的 NVIDIA 显卡，或花费数周时间将模型代码重写为兼容 OpenCL 的其他框架（如 Torch），严重拖慢科研进度。\n- **算法验证受阻**：由于缺乏 GPU 加速，复杂的双向 RNN（Bidirectional RNN）和动态 RNN 模型训练一次需要数天，导致研究人员无法快速迭代参数验证假设。\n- **环境配置困境**：在 macOS 系统下，缺乏成熟的 OpenCL 深度学习后端支持，常规的安装尝试均因缺少对应的 CUDA 核心而报错失败。\n\n### 使用 tf-coriander 后\n- **异构硬件激活**：tf-coriander 利用 Coriander 编译器将原有的 CUDA 代码实时转换为 OpenCL 1.2 指令，成功让 Mac 上的 Radeon Pro 450 GPU 直接跑通 TensorFlow 流程。\n- **零代码修改复用**：团队无需修改任何一行 Python 模型代码，原本为 NVIDIA 显卡编写的 `recurrent_network.py` 等示例脚本可直接在 AMD 设备上运行，保护了既有代码资产。\n- **训练效率飞跃**：借助 CLBlast 提供的优化矩阵运算，RNN 模型的训练速度从 CPU 时代的“天”级缩短至“小时”级，极大提升了实验迭代频率。\n- **跨平台部署灵活**：不仅解决了 Mac 端的痛点，该方案还让团队能在 Ubuntu 系统的老旧 NVIDIA K520 或其他任意支持 OpenCL 1.2 的设备上统一部署模型，降低了硬件门槛。\n\ntf-coriander 的核心价值在于打破了 TensorFlow 对 NVIDIA CUDA 的独家绑定，让开发者能够自由利用广泛的 OpenCL 硬件资源进行高效的深度学习研发。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhughperkins_tf-coriander_7d0720bf.png","hughperkins","Hugh Perkins","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fhughperkins_02f50c4a.png",null,"https:\u002F\u002Fcn.linkedin.com\u002Fin\u002Fhughperkins","https:\u002F\u002Fgithub.com\u002Fhughperkins",[80,84,88,92,96,100,104,108,112,115],{"name":81,"color":82,"percentage":83},"C++","#f34b7d",46,{"name":85,"color":86,"percentage":87},"Python","#3572A5",41.6,{"name":89,"color":90,"percentage":91},"Jupyter Notebook","#DA5B0B",6.2,{"name":93,"color":94,"percentage":95},"TypeScript","#3178c6",2.3,{"name":97,"color":98,"percentage":99},"HTML","#e34c26",1.7,{"name":101,"color":102,"percentage":103},"Shell","#89e051",0.9,{"name":105,"color":106,"percentage":107},"C","#555555",0.3,{"name":109,"color":110,"percentage":111},"CMake","#DA3434",0.2,{"name":113,"color":114,"percentage":111},"Objective-C++","#6866fb",{"name":116,"color":117,"percentage":111},"Java","#b07219",795,91,"2026-03-15T09:21:47","Apache-2.0",5,"Linux, macOS","必需。支持任意 OpenCL 1.2 设备。已测试型号：Mac Radeon Pro 450、NVIDIA K520。无需 CUDA，但底层代码基于 CUDA 并通过 Coriander 转译为 OpenCL。","未说明",{"notes":127,"python":125,"dependencies":128},"该工具旨在让 TensorFlow 运行在非 CUDA 的 OpenCL 1.2 设备上。其核心原理是保持 TensorFlow 代码为 NVIDIA CUDA 格式，利用 Coriander 将其编译为 OpenCL 代码，并使用 CLBlast 提供 BLAS（矩阵乘法）支持。官方提供了 Ubuntu 16.04 的预编译包（wheel）。",[129,130,131],"Coriander","CLBlast","TensorFlow (定制版)",[45,14],[134,135,136,137,138,139,140,141],"opencl","tensorflow","gpu","mac","radeon","intel","nvidia","ubuntu","2026-03-27T02:49:30.150509","2026-04-18T14:24:39.678992",[145,150,155,160,164,169,174],{"id":146,"question_zh":147,"answer_zh":148,"source_url":149},39676,"如何在 Ubuntu 16.04 上解决 Keras 报错 'module tensorflow has no attribute global_variables'？","该错误通常由 TensorFlow 版本不兼容引起。虽然社区建议回退到 TF 0.10 或升级到 0.12，但针对 tf-coriander 项目，升级的核心工作主要在于更新底层的 coriander 组件。具体操作包括：1. 取消注释代码中的 `#ifdef GOOGLE_CUDA` 宏定义；2. 将 coriander  submodule 更新到最新版本。注意，项目中部分 CUDA 设置文件是从原始 TensorFlow 复制过来的，升级时可能需要手动同步这些更改。","https:\u002F\u002Fgithub.com\u002Fhughperkins\u002Ftf-coriander\u002Fissues\u002F28",{"id":151,"question_zh":152,"answer_zh":153,"source_url":154},39677,"在 Mac 上使用 tf-coriander 时遇到 Segfault（段错误）如何解决？","Mac 上的段错误通常与数据结构传递方式有关。解决方案包括：1. 确保结构体是按值（by-value）传递而不是按引用传递，尽管这可能在某些情况下导致问题，但在该特定上下文中是必须的；2. 如果按值传递导致 `InlinedVector::push_back` 崩溃（通常是内存对齐问题），请将 `InlinedVector` 替换为标准的 `std::vector`；3. 在调度内核后，将 `.func` 指针显式设置为 `nullptr`；4. 确保将 `FreeMemory` 操作移入互斥锁（mutex）块中以保护线程安全。","https:\u002F\u002Fgithub.com\u002Fhughperkins\u002Ftf-coriander\u002Fissues\u002F34",{"id":156,"question_zh":157,"answer_zh":158,"source_url":159},39678,"为什么在 MacBook Air (Intel HD 5000) 上运行深度学习实验效果不佳？","这是由于硬件资源严重受限导致的。MacBook Air 通常仅配备约 1.5GB 的系统内存和 384MB 的显存（GPU 内存）。对于大多数深度学习实验，尤其是涉及较大批次大小或复杂模型的任务，这些内存容量远远不够，会导致性能极低甚至无法运行。建议在资源受限的设备上优先使用 CPU 版本进行小规模测试，或迁移到拥有更大显存的机器上进行训练。","https:\u002F\u002Fgithub.com\u002Fhughperkins\u002Ftf-coriander\u002Fissues\u002F55",{"id":161,"question_zh":162,"answer_zh":163,"source_url":159},39679,"Keras 1.1.1 版本与最新文档中的 API 调用不一致怎么办？","Keras 官方文档通常针对最新版本编写，而旧版本（如 1.1.1）的 API 有所不同。主要差异包括：1. 类别转换函数：新版文档使用 `keras.utils.to_categorical(y, num_classes)`，而在 Keras 1.1.1 中应使用 `keras.utils.np_utils.to_categorical(y, nb_classes)`；2. 模型训练参数：新版使用 `epochs` 参数，而 1.1.1 版本需使用 `nb_epoch` 参数。请根据实际安装的 Keras 版本调整代码参数名称。",{"id":165,"question_zh":166,"answer_zh":167,"source_url":168},39680,"`tf.split` 操作返回全为 NaN 的结果是什么原因？","这通常是因为底层 OpenCL 内核在处理特定数据结构时出现问题。具体来说，`tf.split` 涉及将 `float**`（浮点数指针数组）传递给内核。在 tf-coriander 的实现中，对应的结构体 `tensorflow__CudaDeviceArrayStruct` 包含一个 `global float** f2` 成员。如果 OpenCL 编译器或运行时未能正确处理这种双重指针或结构体布局，就会导致计算结果异常（如 NaN）。这是一个已知的底层兼容性难点，通常需要检查内核参数传递机制或等待 OpenCL 后端（如 OpenCL-V）的改进。","https:\u002F\u002Fgithub.com\u002Fhughperkins\u002Ftf-coriander\u002Fissues\u002F33",{"id":170,"question_zh":171,"answer_zh":172,"source_url":173},39681,"在 Ubuntu 16.04\u002FNVIDIA 环境下 `tf.random_normal` 输出全为零怎么办？","这是一个已知的特定环境 Bug。虽然该问题在报告中被标记为“已关闭”，但用户反馈表明，通过更新到项目的最新发行版（latest release）可以解决此问题。最新版本修复了导致随机数生成器在特定驱动组合下失效的逻辑，使得 `tf.random_normal` 能正常生成非零随机数。此外，确保运行 `py.test -v` 测试套件全部通过也是验证环境是否正常的有效方法。","https:\u002F\u002Fgithub.com\u002Fhughperkins\u002Ftf-coriander\u002Fissues\u002F35",{"id":175,"question_zh":176,"answer_zh":177,"source_url":173},39682,"如何验证 tf-coriander 安装是否正确且稳定？","最有效的验证方法是运行项目自带的测试套件。在终端中执行 `py.test -v` 命令。如果所有测试用例都能顺利通过，且没有发生段错误（Segfault）或产生 NaN 值，则说明安装和基本功能是正常的。此外，可以尝试运行 TensorFlow-Examples 中的基础示例（如卷积网络 `convolutional_network.py`），观察损失值（loss）是否下降以及准确率（accuracy）是否上升，以此作为功能正常的辅助判断依据。",[179,184,189,194,199,204,209,214,219,224,229,234,239,244,249,254,259,264,269,274],{"id":180,"version":181,"summary_zh":182,"released_at":183},315625,"v0.18.3","错误修复：\n- 与 v0.18.2 相同，但修复了缩减过程中出现的回归问题。\n","2017-06-07T17:56:52",{"id":185,"version":186,"summary_zh":187,"released_at":188},315626,"v0.18.2","更改：\n- 启用 `tf.split`\n- 现在可以运行 Aymeric Damien 的 [TensorFlow-Examples](https:\u002F\u002Fgithub.com\u002Faymericdamien\u002FTensorFlow-Examples) 中的以下示例：\n  - [recurrent_network.py](https:\u002F\u002Fgithub.com\u002Fhughperkins\u002FTensorFlow-Examples\u002Fblob\u002Fenforce-gpu\u002Fexamples\u002F3_NeuralNetworks\u002Frecurrent_network.py)\n  - [bidirectional_rnn.py](https:\u002F\u002Fgithub.com\u002Fhughperkins\u002FTensorFlow-Examples\u002Fblob\u002Fenforce-gpu\u002Fexamples\u002F3_NeuralNetworks\u002Fbidirectional_rnn.py)\n  - [dynamic_rnn.py](https:\u002F\u002Fgithub.com\u002Fhughperkins\u002FTensorFlow-Examples\u002Fblob\u002Fenforce-gpu\u002Fexamples\u002F3_NeuralNetworks\u002Fdynamic_rnn.py)","2017-06-07T11:44:29",{"id":190,"version":191,"summary_zh":192,"released_at":193},315627,"v0.17.3","错误修复版本：\n- `tf.random_uniform` 和 `tf.random_normal` 在 Mac 和 Ubuntu 上都应与 CPU 版本产生相同的结果。\n- `tf.random_normal` 在 Ubuntu 上不应再返回全零结果，即修复了 https:\u002F\u002Fgithub.com\u002Fhughperkins\u002Ftf-coriander\u002Fissues\u002F35。\n- Mac 平台的 wheel 包应正确设置 `RPATH`，从而避免出现无法加载 `libclew.dylib` 等类似的错误信息，即修复了 https:\u002F\u002Fgithub.com\u002Fhughperkins\u002Ftf-coriander\u002Fissues\u002F39。\n","2017-06-02T12:56:32",{"id":195,"version":196,"summary_zh":197,"released_at":198},315628,"v0.17.2","变更：\n- `tf.random_normal` 和 `tf.random_uniform` 现在可以正常工作了（注意：`tf.random_normal` 在 Radeon 显卡上可用，但在 NVIDIA 显卡上目前会失败）；\n- 启用了其他一些操作，例如切片、聚合、拼接和 gather；\n- Adam 优化器现在可以正常使用了（需要先实现随机数生成功能才能工作）；\n- softmax 现在可以正常使用了；\n- 可以在 Ubuntu 16.04（已在 NVIDIA 显卡上测试）和 Mac Sierra（已在 Radeon Pro 450 上测试）上运行；\n- [multilayer_perceptron.py](https:\u002F\u002Fgithub.com\u002Fhughperkins\u002FTensorFlow-Examples\u002Fblob\u002Fenforce-gpu\u002Fexamples\u002F3_NeuralNetworks\u002Fmultilayer_perceptron.py) 现在可以顺利运行 :-)。\n\n","2017-05-29T23:01:19",{"id":200,"version":201,"summary_zh":202,"released_at":203},315629,"v0.16.0","Mac 构建现在运行情况与 v0.14.0 的 Ubuntu 构建类似。使用的环境为 Mac Sierra 和 Radeon Pro 450 显卡（通过 `export CL_GPUOFFSET=1` 选择）：\n\n| 测试 | Mac Sierra，使用 Radeon Pro 450 GPU |\n|----- |-------|\n| 单元测试 (`py.test -v`) | 通过 | 通过 |\n| [linear_regression.py](https:\u002F\u002Fgithub.com\u002Fhughperkins\u002FTensorFlow-Examples\u002Fblob\u002Fenforce-gpu\u002Fexamples\u002F2_BasicModels\u002Flinear_regression.py) | 运行较慢，但能正常工作   | \n| [logistic_regression.py](https:\u002F\u002Fgithub.com\u002Fhughperkins\u002FTensorFlow-Examples\u002Fblob\u002Fenforce-gpu\u002Fexamples\u002F2_BasicModels\u002Flogistic_regression.py) | 正常  | \n| [nearest_neighbor.py](https:\u002F\u002Fgithub.com\u002Fhughperkins\u002FTensorFlow-Examples\u002Fblob\u002Fenforce-gpu\u002Fexamples\u002F2_BasicModels\u002Fnearest_neighbor.py) | 正常（准确率 0.92）  |\n| [multilayer_perceptron.py](https:\u002F\u002Fgithub.com\u002Fhughperkins\u002FTensorFlow-Examples\u002Fblob\u002Fenforce-gpu\u002Fexamples\u002F3_NeuralNetworks\u002Fmultilayer_perceptron.py) | 缺少 Adam 优化器  |\n| [recurrent_network.py](https:\u002F\u002Fgithub.com\u002Fhughperkins\u002FTensorFlow-Examples\u002Fblob\u002Fenforce-gpu\u002Fexamples\u002F3_NeuralNetworks\u002Frecurrent_network.py)| 缺少 Adam 优化器   | \n| [autoencoder.py](https:\u002F\u002Fgithub.com\u002Fhughperkins\u002FTensorFlow-Examples\u002Fblob\u002Fenforce-gpu\u002Fexamples\u002F3_NeuralNetworks\u002Fautoencoder.py)| 缺少 RMSProp 优化器  |  \n\n如需使用下方的 wheel 文件（仅限 Mac）：\n- 下载 tar 包\n- 使用 `tar -xf` 解压 tar 包\n- 使用 `pip install` 安装解压后的 wheel 文件\n","2017-05-11T02:52:52",{"id":205,"version":206,"summary_zh":207,"released_at":208},315630,"v0.15.0","- 在 Mac 上运行 :-)。已在 macOS Sierra 上测试，使用 Radeon Pro 450 GPU（由我的雇主 [ASAPP](http:\u002F\u002Fasapp.com) 提供）。\n- 下面是适用于 macOS Sierra 的 wheel 包（使用 Python 3.6 构建）。\n- 应该\u002F可能也能在其他版本的 Mac 或 Python 上运行，不过你需要[从源码构建](doc\u002Fbuild-from-source.md)。\n- 目前尚不提供 Ubuntu 16.04 版本，不过较旧的 v0.14.0 wheel 从 Ubuntu 的角度来看功能几乎完全相同。\n- 在 Mac 上运行测试的截图：\n\n\u003Cimg width=\"786\" alt=\"screen shot 2017-05-09 at 10 39 17 pm\" src=\"https:\u002F\u002Fcloud.githubusercontent.com\u002Fassets\u002F123560\u002F25881140\u002F3ee23316-3509-11e7-87ee-3538059eee2d.png\">\n\n请注意，要在 Radeon Pro 450 上进行测试，由于系统中有两块 GPU——索引为 0 的是 Intel HD 530，目前会失败——我以如下方式运行测试：\n\n```bash\nCL_GPUOFFSET=1 py.test -svx\n```\n\n这样就会选择在索引为 1 的 GPU 上运行测试，即 Radeon 显卡。\n\n重要提示：附带的 wheel 包*仅*适用于 Mac、Sierra 和 Python 3.6。在其他环境中将无法正常工作。","2017-05-10T02:47:06",{"id":210,"version":211,"summary_zh":212,"released_at":213},315631,"v0.14.0","- 内部进行彻底重构\n- `argmin` \u002F `argmax` 现在可以正常工作\n- `softmax` 现在可以正常工作\n","2016-11-25T22:33:17",{"id":215,"version":216,"summary_zh":217,"released_at":218},315632,"v0.13.0","- 葡式油炸甜圈测试结果如今与 K520 的结果基本一致\n- 修复了 `not_equal` 运算符的回归问题\n- 移除了内存拷贝中的垃圾数据","2016-11-10T02:11:14",{"id":220,"version":221,"summary_zh":222,"released_at":223},315633,"v0.12.1","终于修复了 beignet 中的严重 bug。一元和二元运算符现在可以在 beignet 上正常工作了 :-) （已在 HD5500 上测试）\n","2016-11-09T02:01:34",{"id":225,"version":226,"summary_zh":227,"released_at":228},315634,"v0.11.0","- 修复了 v0.10.0 版本中的一个严重 bug：设备数量被硬编码为 0 :-P\n- Aymeric Damien 的 [2_BasicModels](https:\u002F\u002Fgithub.com\u002Fhughperkins\u002FTensorFlow-Examples\u002Fblob\u002Fenforce-gpu\u002Fexamples\u002F2_BasicModels) 示例现在都能在 NVIDIA K520 上顺利运行。目前在 Intel HD5500 上似乎仍存在问题。\n- 对底层代码进行了一系列修复，以确保 2_BasicModels 在 K520 上能够正常工作。\n","2016-10-30T14:32:20",{"id":230,"version":231,"summary_zh":232,"released_at":233},315635,"v0.10.0","- https:\u002F\u002Fgithub.com\u002Fhughperkins\u002FTensorFlow-Examples\u002Fblob\u002Fenforce-gpu\u002Fexamples\u002F2_BasicModels\u002Flinear_regression.py runs ok now :-)  (a bit slow, but not monstrously slow, maybe 3-4 times slower than on CUDA)\n- kernels cached between kernel launches\n- bunch of behind-the-scenes ops added, like Cast\n- memory and device name reported correctly now\n- `reduce_min` working now\n- `softmax` added\n","2016-10-29T19:07:54",{"id":235,"version":236,"summary_zh":237,"released_at":238},315636,"v0.9.0","- added `reduce_sum`, `reduce_prod`, `reduce_max`, `reduce_mean`, in beta, [test_reductions.py](tensorflow\u002Fstream_executor\u002Fcl\u002Ftest\u002Ftest_reductions.py)\n","2016-10-28T23:42:34",{"id":240,"version":241,"summary_zh":242,"released_at":243},315637,"v0.8.0","Bug fix:\n- OpenCL compile error on AMD `variable with automatic storage duration cannot be stored in the named address space` should be fixed\n","2016-10-28T23:15:14",{"id":245,"version":246,"summary_zh":247,"released_at":248},315638,"v0.7.0","Training works :-)\n","2016-10-28T14:32:17",{"id":250,"version":251,"summary_zh":252,"released_at":253},315639,"v0.6.0","- BLAS (using [CLBlast](https:\u002F\u002Fgithub.com\u002FCNugteren\u002FCLBlast) ) working now :-), test script [test_blas.py](tensorflow\u002Fstream_executor\u002Fcl\u002Ftest\u002Ftest_blas.py)\n","2016-10-25T10:52:58",{"id":255,"version":256,"summary_zh":257,"released_at":258},315640,"v0.5.0","- Variables can be placed on GPU now [test_gradients.py](tensorflow\u002Fstream_executor\u002Fcl\u002Ftest\u002Ftest_gradients.py)\n","2016-10-24T13:59:24",{"id":260,"version":261,"summary_zh":262,"released_at":263},315641,"v0.4.0","- added following per-element unary operators:, which really are running on gpu now :-), [test_tf4.py](tensorflow\u002Fstream_executor\u002Fcl\u002Ftest\u002Ftest_tf4.py): `tanh`, `abs`, `acos`, `asin`, `atan`, `ceil`, `cos`, `exp`, `floor`, `inverse`, `isfinite`, `isinf`, `isnan`, `log`, `neg`, `sign`, `sin`, `sqrt`, square`,`tan`\n","2016-10-24T11:58:22",{"id":265,"version":266,"summary_zh":267,"released_at":268},315642,"v0.3.0","- (re-)added `maximum`, `minimum`, `pow` per-element operatoins\n","2016-10-24T10:54:56",{"id":270,"version":271,"summary_zh":272,"released_at":273},315643,"v0.2.0","- added per-element `sub`, `div`, `mul`\n","2016-10-24T09:43:40",{"id":275,"version":276,"summary_zh":76,"released_at":277},315644,"v0.1.0","2016-10-23T22:26:37"]