deepseek-ai / deepseek-ai/DeepGEMM

Origin & calibration methodology of the three cost-model constants in sm120.hpp

Open
#385 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Cuda
Stars
7.8k
Forks
1.3k
Avg merge
3d 7h
Merged PRs (30d)
3

Description

**Summary**
While studying the SM120 heuristics, [commit 1383f15](https://github.com/deepseek-ai/DeepGEMM/commit/1383f15d524d929059f7f4b11489e08d6b793ef2#diff-18b89a8f7d4c07c20a45c7008d343419517421a54a8743baf771d830b9fd71bb)
I noticed three magic constants driving the layout scoring function:

```
static constexpr double kCyPerTmaByte = 0.07; // ~35 GB/s per SM
static constexpr double kSyncBaseCy = 120.0; // per-kblock barrier overhead
static constexpr double kBlockOverheadCy = 2000; // epilogue + scheduling
```
I'd like to open a discussion around two questions:

How were these values originally chosen? Were they measured on a specific SKU, taken from a theoretical model, or hand-tuned against a benchmark suite?
Would the maintainers be open to a documented calibration procedure so that downstream users on different SM120 SKUs (RTX 5090 / PRO 5000 / etc.) can re-derive them for their own hardware?

Thanks!

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.