Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
abc6a6b
docs: add ht-fork documentation, branding, and discussion links
marksverdhei Mar 3, 2026
51ffa22
convert: support LoRA conversion for MLA kv_b_proj
marksverdhei Mar 3, 2026
1db0360
ci: add fork sync automation
marksverdhei Mar 3, 2026
fd34773
feat: add --remap-developer-role flag to translate developer→system
marksverdhei Mar 4, 2026
89ed315
feat: support LCO-Embedding-Omni (Qwen2.5 Omni Thinker) GGUF conversion
marksverdhei Mar 4, 2026
41860c7
ci: add ht branch to flake8 lint workflow triggers
marksverdhei Mar 4, 2026
dae3268
feat: welcome agentic contributions, remove upstream AI restrictions …
marksverdhei Mar 6, 2026
92f84ea
feat: welcome agentic contributions, remove upstream AI restrictions …
marksverdhei Mar 7, 2026
ea0daf7
webui: add cancel button for in-progress model loading (#8)
marksverdhei Mar 7, 2026
528ba29
feat(webui): rebrand to ht-llama.cpp and add turquoise/purple theme (…
marksverdhei Mar 7, 2026
5772904
feat: LoRA adapter auto-discovery and UI (#13, #14)
marksverdhei Mar 11, 2026
bd26c78
perf(cuda): add float4-vectorized RMS norm kernel
marksverdhei Mar 29, 2026
4df1fc5
perf(cuda): reduce redundant per-token synchronizations
marksverdhei Mar 29, 2026
25da21f
perf(cpu): add NUMA-aware 1:1 thread-to-core pinning with CCX locality
marksverdhei Mar 29, 2026
6cf3d2a
perf(cpu): add software prefetching and cache-line alignment for quan…
marksverdhei Mar 29, 2026
a89183e
perf(cpu): add software prefetching and cache-line alignment for quan…
marksverdhei Mar 29, 2026
245994f
Merge remote-tracking branch 'hai-pilgrim/perf/reduce-cuda-syncs' int…
marksverdhei Mar 29, 2026
3514f16
Merge remote-tracking branch 'hai-pilgrim/perf/numa-thread-pinning' i…
marksverdhei Mar 29, 2026
d9f1a41
Merge remote-tracking branch 'hai-pilgrim/perf/cpu-prefetch-blocking'…
marksverdhei Mar 29, 2026
c29741d
perf(vulkan): add shared-memory staging MatVec kernel
marksverdhei Mar 29, 2026
c8186a2
Merge remote-tracking branch 'hai-pilgrim/perf/vulkan-shmem-matvec' i…
marksverdhei Mar 29, 2026
b015e20
perf(cuda): fused SiLU-multiply kernel for SwiGLU MLP blocks
marksverdhei Mar 29, 2026
9f1bfd4
Merge remote-tracking branch 'hai-pilgrim/perf/fused-silu-mul' into p…
marksverdhei Mar 29, 2026
ada00bc
perf(cuda): double-buffered CUDA graph overlap for 3-7% throughput im…
marksverdhei Mar 29, 2026
99ab880
Merge remote-tracking branch 'hai-pilgrim/perf/cuda-graph-overlap' in…
marksverdhei Mar 29, 2026
e83c4bc
fix(cpu): guard prefetch with minimum row size to avoid regression on…
marksverdhei Mar 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions .github/workflows/fork-sync.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Fork Sync

on:
schedule:
- cron: '30 7 * * *'
workflow_dispatch:
inputs:
skip_rebase:
description: 'Only sync main, skip rebase of ht'
type: boolean
default: false

jobs:
sync:
uses: heiervang-technologies/.github/.github/workflows/fork-sync-reusable.yml@main
with:
upstream_repo: 'ggml-org/llama.cpp'
upstream_branch: 'master'
fork_branch: 'ht'
skip_rebase: ${{ inputs.skip_rebase || false }}
secrets:
gh_pat: ${{ secrets.HAI_GH_PAT }}
1 change: 1 addition & 0 deletions .github/workflows/python-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
push:
branches:
- master
- ht
paths: [
'.github/workflows/python-lint.yml',
'**/*.py'
Expand Down
82 changes: 0 additions & 82 deletions AGENTS.md

This file was deleted.

59 changes: 40 additions & 19 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,51 @@
# Contributors
# HT Fork Management

The project differentiates between 3 levels of contributors:
This is a [Heiervang Technologies](https://github.com/heiervang-technologies) fork. For full details on fork workflow, sync procedures, and contribution process, see the [Fork Management Guide](https://github.com/orgs/heiervang-technologies/discussions/3).

- Contributors: people who have contributed before (no special privileges)
- Collaborators (Triage): people with significant contributions, who may be responsible for some parts of the code, and are expected to maintain and review contributions for the code they own
- Maintainers: responsible for reviewing and merging PRs, after approval from the code owners
## Branch Conventions

| Branch | Purpose |
|--------|---------|
| `master` | Clean fast-forward mirror of upstream — never commit directly |
| `ht` | HT-specific changes — **default branch**, all PRs target this |
| `feat/*` | Feature branches created from `ht`, squash-merged back via PR |

## Sync Workflow

```bash
# Update master from upstream
git checkout master
git fetch upstream
git merge --ff-only upstream/master
git push origin master

# Rebase ht onto updated master
git checkout ht
git rebase master
git push --force-with-lease origin ht
```

# AI Usage Policy
## Commit Standards

> [!IMPORTANT]
> This project does **not** accept pull requests that are fully or predominantly AI-generated. AI tools may be utilized solely in an assistive capacity.
>
> Repeated violations of this policy may result in your account being permanently banned from contributing to the project.
>
> Detailed information regarding permissible and restricted uses of AI can be found in the [AGENTS.md](AGENTS.md) file.
- Use [conventional commits](https://www.conventionalcommits.org/) (e.g., `feat:`, `fix:`, `chore:`)
- Maintain clean, linear history — one commit per logical change
- Squash fix-up commits before merging

Code that is initially generated by AI and subsequently edited will still be considered AI-generated. AI assistance is permissible only when the majority of the code is authored by a human contributor, with AI employed exclusively for corrections or to expand on verbose modifications that the contributor has already conceptualized (e.g., generating repeated lines with minor variations).
For all questions and inquiries about this fork, use [HT Discussions](https://github.com/orgs/heiervang-technologies/discussions).

If AI is used to generate any portion of the code, contributors must adhere to the following requirements:
---

# Contributors

This fork differentiates between 3 levels of contributors:

- Contributors: people who have contributed before (no special privileges)
- Collaborators (Triage): people with significant contributions, who may be responsible for some parts of the code, and are expected to maintain and review contributions for the code they own
- Maintainers: responsible for reviewing and merging PRs, after approval from the code owners

1. Explicitly disclose the manner in which AI was employed.
2. Perform a comprehensive manual review prior to submitting the pull request.
3. Be prepared to explain every line of code they submitted when asked about it by a maintainer.
4. It is strictly prohibited to use AI to write your posts for you (bug reports, feature requests, pull request descriptions, Github discussions, responding to humans, ...).
# Agentic Contributions

For more info, please refer to the [AGENTS.md](AGENTS.md) file.
We welcome contributions from AI agents and assistants. Unlike upstream, we recognize that modern development workflows increasingly involve AI tools, and we embrace that reality. Whether you're a human developer or working with an AI assistant, we're happy to review your pull request. Standard code quality expectations apply—contributions should be well-tested, documented, and maintainable—but we evaluate the code, not how it was written.

# Pull requests (for contributors & collaborators)

Expand Down
33 changes: 31 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,35 @@
# llama.cpp
![ht-llama.cpp](media/ht-llama-banner.png)

![llama](https://user-images.githubusercontent.com/1991296/230134379-7181e485-c521-4d23-a0d6-f7b3b61ba524.png)
# ht-llama.cpp

_Heiervang Technologies fork of [llama.cpp](https://github.com/ggml-org/llama.cpp)_

[HT Discussions](https://github.com/orgs/heiervang-technologies/discussions) | [Fork Management Guide](https://github.com/orgs/heiervang-technologies/discussions/3) | [Upstream: llama.cpp](https://github.com/ggml-org/llama.cpp)

---

## HT Fork Changes

This is the [Heiervang Technologies](https://github.com/heiervang-technologies) fork of [llama.cpp](https://github.com/ggml-org/llama.cpp). The `ht` branch contains the following changes on top of upstream `master`:

| Change | Description | Contributed back? |
|--------|-------------|-------------------|
| Agentic contributions policy | We welcome AI-assisted and AI-generated contributions—see [CONTRIBUTING.md](CONTRIBUTING.md) | N/A |

Unlike upstream, we accept contributions from AI agents and assistants. We judge code by its quality, not its authorship.

### Branch Strategy

| Branch | Purpose |
|--------|---------|
| `master` | Clean fast-forward mirror of upstream `master` — never commit directly |
| `ht` | HT-specific changes on top of `master` — **default branch** |

Feature branches are created from `ht` and squash-merged back via PR.

For questions or inquiries, use the [HT Discussions](https://github.com/orgs/heiervang-technologies/discussions) page. For details on fork workflow and sync procedures, see the [Fork Management Guide](https://github.com/orgs/heiervang-technologies/discussions/3).

---

[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![Release](https://img.shields.io/github/v/release/ggml-org/llama.cpp)](https://github.com/ggml-org/llama.cpp/releases)
Expand Down
10 changes: 10 additions & 0 deletions common/arg.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2226,12 +2226,14 @@ common_params_context common_params_parser_init(common_params & params, llama_ex
"- distribute: spread execution evenly over all nodes\n"
"- isolate: only spawn threads on CPUs on the node that execution started on\n"
"- numactl: use the CPU map provided by numactl\n"
"- pin: 1:1 thread-to-core pinning with CCX/L3 locality awareness\n"
"if run without this previously, it is recommended to drop the system page cache before using this\n"
"see https://github.com/ggml-org/llama.cpp/issues/1437",
[](common_params & params, const std::string & value) {
/**/ if (value == "distribute" || value == "") { params.numa = GGML_NUMA_STRATEGY_DISTRIBUTE; }
else if (value == "isolate") { params.numa = GGML_NUMA_STRATEGY_ISOLATE; }
else if (value == "numactl") { params.numa = GGML_NUMA_STRATEGY_NUMACTL; }
else if (value == "pin") { params.numa = GGML_NUMA_STRATEGY_PIN; }
else { throw std::invalid_argument("invalid value"); }
}
).set_env("LLAMA_ARG_NUMA"));
Expand Down Expand Up @@ -3058,6 +3060,14 @@ common_params_context common_params_parser_init(common_params & params, llama_ex
params.use_jinja = value;
}
).set_examples({LLAMA_EXAMPLE_SERVER, LLAMA_EXAMPLE_COMPLETION, LLAMA_EXAMPLE_CLI, LLAMA_EXAMPLE_MTMD}).set_env("LLAMA_ARG_JINJA"));
add_opt(common_arg(
{"--remap-developer-role"},
"remap the OpenAI \"developer\" role to \"system\" before applying chat templates "
"(needed for models whose templates reject unknown roles, e.g. Qwen3.5)",
[](common_params & params) {
params.remap_developer_role = true;
}
).set_examples({LLAMA_EXAMPLE_SERVER}).set_env("LLAMA_ARG_REMAP_DEVELOPER_ROLE"));
add_opt(common_arg(
{"--reasoning-format"}, "FORMAT",
"controls whether thought tags are allowed and/or extracted from the response, and in which format they're returned; one of:\n"
Expand Down
1 change: 1 addition & 0 deletions common/common.h
Original file line number Diff line number Diff line change
Expand Up @@ -588,6 +588,7 @@ struct common_params {
std::string api_prefix = ""; // NOLINT
std::string chat_template = ""; // NOLINT
bool use_jinja = true; // NOLINT
bool remap_developer_role = false; // remap "developer" role to "system" for template compatibility
bool enable_chat_template = true;
bool force_pure_content_parser = false;
common_reasoning_format reasoning_format = COMMON_REASONING_FORMAT_DEEPSEEK;
Expand Down
Loading