⚡ C# · .NET 10 · GGUF · GPU 加速

TensorSharp

一个面向 GGUF 模型的原生 .NET 大模型推理引擎 —— 提供命令行工具、浏览器聊天服务器,以及用于程序化访问的兼容 Ollama 与 OpenAI 的 API

一切都运行在你自己的硬件上:你的笔记本、工作站或服务器。数据不离开本机,没有按 token 计费,同一套引擎既能完成快速的命令行测试,也能支撑团队内部共享的聊天机器人和生产环境的 REST 接口。本维基是完整指南 —— 从下方选择一个起点,或按 / 进行搜索。

Zhongkai Fu 所著《From Tensors to Tokens》封面

TensorSharp 配套图书 · 现已出版

From Tensors to Tokens

不只运行模型,更要理解它背后的引擎。以 TensorSharp 和 Gemma 4 E4B 为主线,从张量布局一路走到多模态 token 的流式生成,亲手构建、验证并优化一套现代 C#/.NET 推理引擎。

从零构建 C# 引擎Gemma 4 E4B文本 · 图像 · 视频 · 音频从正确性到性能

作者:Zhongkai Fu · 平装 · 128 页

浏览维基

🚀

快速开始

环境要求、构建、下载模型,并流式输出你的第一个回复。

⌨️

命令行

从 CLI 运行提示词、图像、音频、批处理与基准测试。

🌐

服务器与 Web UI

在本机托管浏览器聊天机器人和 HTTP 接口。

🔌

HTTP API

用 curl、Python 或任意 Ollama / OpenAI 客户端调用它。

🧩

C# 库

将引擎直接嵌入你的 .NET 应用。

📚

API 参考

可搜索的参数、环境变量、端点与类型表。

🧠

模型

支持的架构、下载、多模态与推理能力。

🔗

多 GPU 与多节点

跨 GPU(CUDA 与 GGML)、跨机器的张量并行。

📖

术语表与 FAQ

初识大模型?这里有通俗的定义和常见问题。

约 30 秒快速上手

按平台安装 .NET 10 SDKgitcurl 后,这条路径在原生 GGML 后端上运行经基准验证的 Gemma 4 E4B Q8_0 模型。复制命令约需 30 秒;7.48 GiB 的模型下载与首次 restore/构建耗时更久,取决于网络与机器。下面的代码块面向 Linux + NVIDIA —— 其他后端见下文。Windows PowerShell 请用 curl.exe

  1. 克隆

    下方第一次 dotnet run 会 restore 项目并编译原生 GGML CUDA 后端;首次构建可能需要数分钟。

    git clone https://github.com/zhongkaifu/TensorSharp.git
    cd TensorSharp
  2. 下载模型

    推荐文件是 gemma-4-E4B-it-Q8_0.gguf(7.48 GiB);同一仓库还提供更省内存的 gemma-4-E4B-it-Q4_K_M.gguf

    curl --create-dirs --fail -L "https://huggingface.co/ggml-org/gemma-4-E4B-it-GGUF/resolve/main/gemma-4-E4B-it-Q8_0.gguf?download=true" -o models/gemma-4-E4B-it-Q8_0.gguf
  3. 运行它

    环境变量赋值用于启用 CUDA 原生构建。E4B 还支持思考(--think)与工具调用(--tools)。

    echo "简短回答:TensorSharp 是什么?" > prompt.txt
    TENSORSHARP_GGML_NATIVE_ENABLE_CUDA=ON dotnet run --project TensorSharp.Cli -c Release -p:TensorSharpSkipMlxNative=true -- --model models/gemma-4-E4B-it-Q8_0.gguf --input prompt.txt --max-tokens 128 --backend ggml_cuda
  4. 想要 UI + API?

    用同一模型启动服务端。/ 是健康检查,浏览器聊天位于 /index.html

    TENSORSHARP_GGML_NATIVE_ENABLE_CUDA=ON dotnet run --project TensorSharp.Server -c Release -p:TensorSharpSkipMlxNative=true -- --model models/gemma-4-E4B-it-Q8_0.gguf --backend ggml_cuda --max-tokens 128
    # 打开 http://localhost:5000/index.html

其他后端与多模态

Apple Silicon 请省略 CUDA 环境变量并使用 ggml_metal;受支持的 Windows/Linux Vulkan GPU 请改为请求 TENSORSHARP_GGML_NATIVE_ENABLE_VULKAN=ON 并使用 ggml_vulkan;没有 GPU 时使用 ggml_cpu(原生 CPU 内核,无需 GPU 工具链)。纯文本推理只需要模型 GGUF;图像、视频或音频输入还需下载匹配的 mmproj-gemma-4-E4B-it-Q8_0.gguf,并通过 --mmproj 传入。Windows PowerShell 与完整平台语法见 E4B 快路径说明

为什么选择 TensorSharp?

🔒

默认私有

推理在你的硬件上进行。提示词、文档和图像永不离开本机。

💸

没有按 token 账单

硬件允许多少就跑多少 —— 成本可预测,没有计量 API。

🔁

即插即用兼容

支持 Ollama 与 OpenAI 协议,现有工具与 SDK 直接可用。

🖥️

随处可运行

NVIDIA (CUDA)、AMD / Intel / NVIDIA (Vulkan)、Apple Silicon (Metal/MLX) 或纯 CPU —— 均带自动回退。

🧠

现代模型支持

Gemma、Qwen、GPT-OSS、Nemotron-H、Mistral,外加视觉、音频、PDF 文档、推理与工具调用。

⚙️

用 .NET 构建

原生 C# 引擎,可嵌入你的应用,而不只是一个黑盒二进制。

🔗

不止一张 GPU

张量并行用 --tp N 把模型切分到多张 GPU 上(Direct CUDA 与 GGML CUDA / Vulkan 均可);一台机器不够时,还可通过点对点 TCP 网格跨机器扩展。

🏁

对比 llama.cpp 的基准

在相同 GGUF 文件与相同 GPU 上与 C++ 引擎互有胜负 —— 在当前的 CUDA + Vulkan 对比运行中(可通过 benchmarks/engine_comparison 复现):Gemma 4 E4B 与 2-bit 量化的 Qwen 3.6 35B-A3B MoE 在 CUDA 上 prefill 快 1.28×、首 token 早 1.27×,多轮提示的 prefill 在每个模型上都更快(最高 1.49×),Gemma 4 12B 在 Vulkan 上 decode 快 1.21×。

这是为谁准备的?

TensorSharp 面向各类访客。下面是每类人最快的上手路径。

初学者与学生

配套图书术语表与 FAQ开始,再动手完成快速开始

开发者

直达 HTTP APIC# 库API 参考

资深 / 首席工程师

阅读高级功能 —— 分页 KV、连续批处理、推测解码。

管理者、CTO 与 CEO

查看商业价值能力矩阵

销售与市场

使用功能目录基准测试做定位。

研究者与教授

探索模型架构基准对比