Tune the INT4 prefill GEMM
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 55/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Active
- Domain
- machine-learning, performance
Research direction
Read src/bitsmith/kernels/int4_triton.py at _gemm and the benchmark setup in scripts/bench_kernels.py; compare the 512-row results in results/kernels_rtx3090.txt with cuBLAS fp16. Explore the listed tile, pipeline, and dequantization ideas, then benchmark the 7B shapes. Done means 512-row INT4 runs within 1.3x of cuBLAS fp16.
Written by the indexing model from the issue text.
Description
For 512 rows the fused INT4 GEMM is about 2x slower than cuBLAS fp16
(results/kernels_rtx3090.txt). Prefill is compute bound, so the goal is to get close to
cuBLAS, not to beat it.
Ideas: larger tiles and more pipeline stages in the autotune list, dequantizing a tile
once into shared memory and reusing it across row blocks, BLOCK_K larger than the group
size.
Files: src/bitsmith/kernels/int4_triton.py (_gemm), scripts/bench_kernels.py
Done when 512-row INT4 is within 1.3x of cuBLAS fp16 on the 7B shapes.
- Dominant language
- Python
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from yashwanthdevavarapu/bitsmith
-
area: benchmarks good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
area: benchmarks good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
-
area: cli area: formats good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 92/100
-
area: cli good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
area: benchmarks good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
All issues in yashwanthdevavarapu/bitsmith
Similar issues
-
fuzz fuzz-unconfirmed
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
Switch to ruffOpen
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
Qiskit/qiskit-aer#2533 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
etesync/etesync-dav#376 ·