Việc chạy các mô hình ngôn ngữ lớn (LLM) cục bộ thường đẩy bạn vào thế bí về phần cứng. Người dùng NVIDIA sống trong hệ sinh thái CUDA. Các nhà phát triển Apple chọn Metal. Những người còn lại hy vọng GPU của họ hỗ trợ OpenCL hoặc đơn giản là quay về dùng CPU. Sự phân mảnh đó khiến việc phát hành một ứng dụng AI trên máy tính để bàn trở nên khó khăn hơn mức cần thiết. TensorSharp vừa giải quyết một phần vấn đề này bằng cách thêm backend Vulkan, mang lại cho engine một lộ trình đáng tin cậy trên các GPU rời từ nhiều nhà cung cấp khác nhau.

Tại sao Vulkan thay đổi cuộc chơi

Vulkan thường được thảo luận trong giới gaming, nhưng với tư cách là một API tính toán đa nền tảng với overhead thấp, nó cũng quan trọng không kém đối với việc suy luận (inference). Nó tiếp cận được cả những phần cứng mà CUDA bỏ qua: các chip tích hợp Intel UHD và Iris Xe, các card rời đời cũ, hay các laptop Windows giá rẻ không có nhãn NVIDIA. Đối với một engine suy luận cục bộ, khả năng tiếp cận đó chính là sức mạnh thực tế. Một nhà phát triển có thể phát hành một đường dẫn binary duy nhất mà có thể chạy trên nhiều máy hơn hẳn so với giải pháp chỉ dành cho CUDA.

Hỗ trợ Vulkan của TensorSharp ra mắt thông qua dự án GGML. Sự tích hợp này đã hoạt động ngay hôm nay, mặc dù tác giả có kế hoạch xây dựng một backend Vulkan thuần (native) sau này. Sử dụng GGML làm cầu nối là một bước đi đệm hợp lý. Nó giúp xác thực kiến trúc và đưa phần cứng đến tay những người thử nghiệm ngay lập tức. Một backend native sẽ theo sau để loại bỏ chi phí trừu tượng hóa (abstraction overhead) và giúp engine tập trung vào C# có quyền kiểm soát tinh vi hơn đối với các command buffer và memory barrier.

Khả năng thử nghiệm hiện tại như thế nào

Việc xác thực đã bao gồm hai cấu hình Windows rất khác nhau. Nhà phát triển đã thử nghiệm trên GPU NVIDIA GeForce RTX 3080 Laptop và trên Intel UHD Graphics thông thường. Cả hai đều chạy tốt. Phạm vi này rất đáng chú ý. Các chip rời công suất cao và đồ họa tích hợp cơ bản hiếm khi chia sẻ một bề mặt thử nghiệm suôn sẻ như vậy trong thế giới suy luận. Nếu bạn đang chạy một chiếc laptop nhẹ không có GPU chuyên dụng, TensorSharp hiện cung cấp một lộ trình tăng tốc thực sự mà không phụ thuộc vào driver NVIDIA.

Khoảng trống trong ma trận này là AMD. Chưa có phần cứng Radeon nào được thử nghiệm. Nếu bạn sở hữu GPU AMD, dự án cần phản hồi từ bạn. Sự xác thực từ cộng đồng trên các dòng card RX 6000 hoặc 7000 là điều sẽ biến một backend thử nghiệm thành một lựa chọn cấp độ sản xuất (production-grade). Hãy gửi issue nếu nó bị lỗi, hoặc gửi issue nếu nó hoạt động mượt mà. Bất kỳ kết quả nào cũng đều thúc đẩy dự án tiến lên.

TensorSharp không phải là một wrapper

Điểm này cần được nhấn mạnh. TensorSharp không phải là một bản binding C# bao quanh llama.cpp. Nhà phát triển đã xây dựng toàn bộ engine từ con số không. Backend CPU là C# thuần túy. Khi bạn chạy suy luận mà không có GPU, bạn đang thực thi mã được quản lý (managed code) thay vì thông qua một giao diện hàm ngoại (foreign function interface) vào một binary C++. Dự án cũng duy trì các backend chuyên dụng cho CUDA, MLX của Apple và GGML. Bất chấp sự độc lập về kiến trúc đó, hiệu suất vẫn tương đương với llama.cpp, vốn là điểm tham chiếu mà hầu hết các dự án suy luận cục bộ đang theo đuổi. Sự tương đương đó là thành quả khó khăn mới có được. Nó có nghĩa là bố cục bộ nhớ (memory layout), điều phối kernel (kernel dispatch) và các toán tử tensor đều đứng vững dưới tải thực tế.

Hỗ trợ mô hình bao gồm Gemma4, DiffusionGemma và Qwen3.6. Runtime cũng xử lý được các tác vụ đa phương thức (multimodal). Các pipeline về thị giác (vision), âm thanh (audio) và suy luận (reasoning) đều chạy qua cùng một engine. Nếu bạn đang xây dựng nguyên mẫu một trợ lý máy tính để bàn có khả năng đọc ảnh chụp màn hình và nhận lệnh bằng giọng nói, bạn không cần phải chắp vá ba runtime riêng biệt và cầu nguyện rằng dung lượng bộ nhớ của chúng vừa vặn với máy của mình.

Sự linh hoạt về nền tảng và API

TensorSharp chạy trên Windows, macOS và Linux. Backend Vulkan mới khớp hoàn hảo vào ma trận đó cùng với các đường dẫn CUDA và Metal hiện có. Engine cũng cung cấp khả năng tương thích với cả API của OpenAI và Ollama. Lựa chọn đó giúp loại bỏ sự ma sát khi tích hợp. Bạn có thể trỏ mã client hiện có tới một server TensorSharp cục bộ mà không cần viết lại các prompt template hay phân tích cấu trúc phản hồi mới. Đối với các đội ngũ đã chạy Ollama nội bộ hoặc xây dựng dựa trên bề mặt REST của OpenAI, việc chuyển sang một instance TensorSharp cục bộ phần lớn chỉ là vấn đề thay đổi URL cơ sở.

Các tối ưu hóa mượn được nhưng hiệu quả

Hiệu suất không chỉ nằm ở việc API nào giao tiếp với GPU. TensorSharp tích hợp một số tối ưu hóa đã được chứng minh trong môi trường thực tế ở những nơi khác.

Paged KV cache, được mượn từ vLLM, giúp ngăn chặn việc bộ nhớ bị phình to trong các cuộc hội thoại dài. Thay vì dành riêng một vùng nhớ tạm (scratchpad) liên tục cho mỗi chuỗi, engine sẽ cấp phát các trang (pages) có kích thước cố định và ánh xạ chúng theo nhu cầu. Bạn có thể giữ các cửa sổ ngữ cảnh (context windows) mở lâu hơn mà không phải lo lắng về việc mức sử dụng RAM tăng vọt.

Continuous batching, một kỹ thuật cũng có từ vLLM, giúp cải thiện throughput. Engine có thể chèn các yêu cầu mới vào các batch đang hoạt động thay vì phải chờ nhóm hiện tại hoàn tất. Nếu prompt của một người dùng là mười token và của người khác là hai trăm, phần cứng sẽ hoạt động bận rộn hơn và độ trễ trung bình sẽ giảm xuống.

Đối với các mô hình Mixture-of-Experts, TensorSharp triển khai một chiến lược cache dựa trên SSD được kế thừa từ oMLX. Các trọng số chuyên gia (expert weights) được truy cập thường xuyên sẽ nằm sẵn trên bộ lưu trữ tốc độ cao thay vì phải tranh giành với RAM hệ thống. Trên các máy tính có bộ nhớ hạn chế nhưng có ổ cứng NVMe tốt, điều này giúp các kiến trúc MoE có thể sử dụng được.

Quantization tuân theo tiêu chuẩn GGUF được thiết lập bởi llama.cpp. Các mô hình 4-bit và 5-bit đã được lượng tử hóa của bạn sẽ được tải trực tiếp mà không cần bước chuyển đổi.

Điểm mấu chốt thực sự

Việc hỗ trợ Vulkan đã biến TensorSharp từ một thử nghiệm C# thú vị thành một tùy chọn suy luận thực tế cho các phần cứng không đồng nhất. Lộ trình đã rõ ràng: xác thực trên các dòng chip rời của AMD và Intel, sau đó tối ưu hóa việc triển khai với một backend Vulkan gốc. Nếu bạn có card AMD trong máy trạm hoặc laptop của mình, hãy chạy bản build và chia sẻ kết quả. Vòng lặp phản hồi đó chính là thứ giúp mài giũa các mã nguồn thử nghiệm thành thứ mà bạn có thể thực sự phát hành.

Bạn có thể tìm thấy chi tiết bản phát hành trong bài viết của nhà phát triển. Nếu dự án này giúp bạn không còn phải xoay xở với các bộ công cụ CUDA hay vật lộn với các giới hạn phiên bản macOS, hãy để lại một ngôi sao trên repository. Để tham gia thảo luận và các luồng thử nghiệm cộng đồng, nhóm Telegram luôn luôn mở.