iCoder-27B is a 27B-parameter model for industrial coding, covering RTL design and GPU kernel optimization.
It is the product of an experiment in delegating model development itself. Human experts encoded their model-development experience once, as reusable Research Skills. From that point on an agent instantiated those Skills, allocated resources, ran and diagnosed experiments, and revised the training strategy. The agent coordinated a multi-stage pipeline spanning supervised fine-tuning, on-policy self-distillation, and reinforcement learning with verifiable rewards, in which every reward comes from compiling and running the model's own output rather than from comparison against a reference text.

Despite its compact scale, iCoder-27B surpasses models with up to 59x more total parameters, including DeepSeek-V4-Pro, GLM-5.2 and Kimi-K2.6. It leads on RTLLM (68.0), ties Claude Opus 4.8 for the best TritonBench-G pass@1 (20.1), and ranks second on KernelBench L2 Fast and on CVDP. Its 61% KernelBench L1 correctness is the highest of any model evaluated.
The full technical report describing the recipe is available here.
Results

Every model is evaluated through the same harness. RTL benchmarks run under the simulator each official suite specifies; kernel benchmarks compare candidate outputs against the reference implementation under matched inputs. Bold marks the best result in each row and italic the second best.
| Benchmark | Metric | iCoder-27B | Qwen3.6-27B | InCoder-32B | InCoder-32B-T | DeepSeek-V4-Pro | GLM-5.2 | Kimi-K2.6 | GPT-5.5 | Claude-Opus-4.8 | Hy3 | Gemini-3.5-Flash |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| VerilogEval | Spec-to-RTL avg@4 | 86.3 | 70.1 | 62.5 | 65.9 | 69.9 | 66.0 | 72.4 | 90.1 | 82.7 | 83.8 | 89.1 |
| VerilogEval | Code-complete avg@4 | 86.0 | 70.8 | 58.2 | 54.2 | 79.8 | 74.8 | 78.5 | 91.4 | 81.9 | 81.6 | 83.8 |
| RTLLM | Functional avg@4 | 68.0 | 49.6 | 48.0 | 44.2 | 67.5 | 64.0 | 59.0 | 66.0 | 64.7 | 53.5 | 63.5 |
| CVDP | Functional avg@5 (%) | 44.1 | 33.9 | 36.9 | 30.3 | 38.5 | 39.5 | 42.1 | 39.5 | 47.7 | 39.7 | 29.7 |
| RealBench | Syntax pass@5 (%) | 61.7 | 38.3 | 60.0 | 55.0 | 36.7 | 43.3 | 58.3 | 80.0 | 83.3 | 41.7 | 68.3 |
| RealBench | Functional pass@5 (%) | 26.7 | 16.7 | 46.7 | 36.7 | 16.7 | 25.0 | 25.0 | 28.3 | 36.7 | 16.7 | 26.7 |
| ArchXBench | Functional pass@1 (%) | 49.3 | 35.2 | 36.6 | 29.6 | 50.7 | 50.7 | 42.3 | 56.3 | 54.9 | 47.9 | 50.7 |
| KernelBench L1 | Compiled (%) | 95 | 87 | 88 | 85 | 93 | 96 | 93 | 98 | 95 | 94 | 94 |
| KernelBench L1 | Correct (%) | 61 | 32 | 51 | 47 | 32 | 50 | 32 | 43 | 55 | 42 | 45 |
| KernelBench L1 | Fast (%) | 25 | 12 | 18 | 18 | 13 | 26 | 5 | 22 | 30 | 21 | 23 |
| KernelBench L2 | Compiled (%) | 97 | 89 | 90 | 93 | 91 | 98 | 84 | 100 | 97 | 98 | 99 |
| KernelBench L2 | Correct (%) | 74 | 28 | 65 | 63 | 40 | 40 | 17 | 41 | 70 | 56 | 78 |
| KernelBench L2 | Fast (%) | 40 | 17 | 14 | 15 | 25 | 30 | 7 | 24 | 37 | 29 | 47 |
| KernelBench L3 | Compiled (%) | 90 | 86 | 60 | 60 | 86 | 90 | 82 | 100 | 84 | 98 | 100 |
| KernelBench L3 | Correct (%) | 34 | 12 | 30 | 20 | 4 | 30 | 18 | 38 | 40 | 18 | 58 |
| KernelBench L3 | Fast (%) | 10 | 4 | 14 | 12 | 2 | 0 | 0 | 6 | 8 | 2 | 14 |
| TritonBench-G | Correctness pass@1 (%) | 20.1 | 11.4 | 17.9 | 18.5 | 19.0 | 19.0 | 19.0 | 19.5 | 20.1 | 19.5 | 14.9 |
Usage
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "i-Coder/iCoder-27B"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id, dtype="auto", device_map="auto"
)
messages = [{"role": "user", "content": "Write a 4-bit synchronous up counter with active-low reset in Verilog."}]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer([text], return_tensors="pt").to(model.device)
out = model.generate(**inputs, max_new_tokens=2048)
print(tokenizer.decode(out[0][inputs.input_ids.shape[-1]:], skip_special_tokens=True))
Citation
If you find iCoder useful in your work, please cite the technical report:
@article{yang2026icoder,
title = {iCoder-27B: Recursive AI-Led Development of Frontier Industrial Coding Model},
author = {Cheng Yang and Jiayang Lyu and Shangyuan Liu and Guibin Zhang and
Jiong Lin and Xinlei Yu and Junchi Yan and Shuicheng Yan and
Weinan E and Linfeng Zhang and Linfeng Zhang and Qibing Ren},
journal = {arXiv preprint arXiv:2609.29626},
year = {2026}
}
License
Apache-2.0, inherited from the base model, Qwen3.6-27B.