Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
464d251
display: add --alpha/--diag options
guillon Jun 12, 2026
59063b2
[TMA]Support tma TopdownL1 for older intel than Ice lake
May 21, 2026
55fd193
[TMA]tma TopdownL1 support for zen4 arch (untested)
May 21, 2026
b9b8ee1
[TMA]microarch detection for tma
May 26, 2026
c526d50
[TMA]script to activate HW counters
May 26, 2026
1db64dd
[TMA]Hadware Events for modern Intel
May 26, 2026
73b8cbd
[TMA]TopDownL2 support for modern Intel
May 26, 2026
1d588a5
[TMA]Documentation for tma counters
May 27, 2026
3d72855
[TMA]HW counters fallback if API unavailable, now call perf stat
May 27, 2026
755bbd6
[TMA]test sizes for tma eval
May 28, 2026
83b7c2a
[TMA]Marimo tutorial for hardware counters
May 28, 2026
ba16582
[TMA]update HW counters Marimo tutorial
May 28, 2026
f98de41
[TMA]rename 'tma_counters' to 'hw_counters' sinces they can be mixed …
Jun 1, 2026
997e2fb
[TMA]Allow to mix up pmu and tma, fallback to perf only on unsupporte…
Jun 1, 2026
85f5b68
[TMA]tma marimo use a compile button instead of dynamicly loading all…
Jun 1, 2026
817e464
[TMA]less effective schedule to see the backend bound
Jun 1, 2026
9dcebc3
[TMA]update HW counters Marimo tutorial
Jun 1, 2026
332b35e
[TMA]multiplexing implementation in progress
Jun 1, 2026
a378b94
[TMA]add multi-pass to the skylake resolver
Jun 2, 2026
b906591
[TMA]update HW counters Marimo tutorial
Jun 2, 2026
bb27b78
[TMA]Zen4 support for TopdownL1 and TopdownL2
Jun 2, 2026
dae5cbe
[TMA]allow to ask multiples tma without overload HW counters registers
Jun 3, 2026
20ff0bf
[TMA]update TMA test
Jun 3, 2026
379cb70
[TMA]opti : kernel is not runned if all events of the current TMA pas…
Jun 3, 2026
576f5ce
[TMA]clean debug comments
Jun 3, 2026
57c0894
[TMA]update HW counters Marimo tutorial
Jun 3, 2026
7403874
[TMA]update tested arch (tma)
Jun 8, 2026
add94b0
[TMA]Update HW tutorial
Jun 8, 2026
7079c66
[TMA]Skylake TopdownL3 (memory) implementation in progress
Jun 8, 2026
93d2a14
[TMA]usage for TopdownL3_Mem
Jun 9, 2026
8e9162c
[TMA]fix TopdownL3_Mem API for skylake
Jun 9, 2026
9c227e3
[TMA]altair dependency to show graphes in marimo
Jun 9, 2026
e2ca7be
[TMA]fix events code
Jun 9, 2026
1434e3b
[TMA]update HW counters Marimo tutorial
Jun 9, 2026
bb0827c
[TMA]add L3_Mem metric
Jun 10, 2026
4b379ef
[TMA]topdownL3 (memory) support for modern Intel
Jun 10, 2026
05f116e
[TMA]update HW counters Marimo tutorial
Jun 10, 2026
1b7694b
[TMA]improve perf by using better schedule
Jun 10, 2026
31bd904
[TMA]use descript schedule
Jun 10, 2026
28d0534
[TMA]update HW counters Marimo tutorial
Jun 10, 2026
8e747b3
[TMA]event fixing to test
Jun 10, 2026
125573e
[TMA]fix missing TopdownL2 data
Jun 10, 2026
db3acc5
[TMA]opti : not using strcmp for hw events, explicit masking for bett…
Jun 10, 2026
a6defa8
[TMA]update HW counters Marimo tutorial
Jun 11, 2026
d26a340
[TMA]aarch64 support for TopdownL1,TopdownL2 (untested)
Jun 11, 2026
d22d57f
[TMA]rename arg tmu_counters to hw_counters
Jun 12, 2026
6282ca3
[TMA]add missing license, fix banwords
Jun 12, 2026
99778d5
[TMA]fix expected output
Jun 12, 2026
ae514d2
[TMA]fix evaluate_perf call using the new interface
Jun 12, 2026
77c0777
[TMA]Disable debug messages, fix perf fallback's return value
Jun 12, 2026
2c4f26d
[TMA]Remove unused script
Jun 12, 2026
1cc4893
[TMA]Put Linux-specific code between ifdefs
Jun 15, 2026
00db8fc
[TMA]Put Linux-specific code between ifdefs
Jun 15, 2026
d91b049
[TMA]Put Linux-specific code between ifdefs
Jun 15, 2026
b669d7a
Fix new tma test for unsupported arch
Jun 15, 2026
51814bb
[TMA]TopdownL3 skylake support (deducted metrics missing)
Jun 15, 2026
385ab60
[TMA]TopdownL3 skylake full support
Jun 15, 2026
8469be3
[TMA]Support TopdownL3 for modern Intel
Jun 16, 2026
23d7e47
[TMA]Fix formula TopdownL3 for modern Intel
Jun 16, 2026
7190552
[TMA]update HW counters Marimo tutorial
Jun 16, 2026
4ef6086
[DESCRIPT] Descript++ notebook
May 27, 2026
6261f0f
[DESCRIPT] d++ explication
May 28, 2026
d60911d
[DESCRIPT] Cumulative perf graph
May 29, 2026
670e240
[DESCRIPT] Edits to keep both parts coherent
Jun 18, 2026
1c6833f
[TMA]update HW counters Marimo tutorial
Jun 17, 2026
43165c6
[TMA] fix Comet Lake detection
Jun 19, 2026
4de0991
[TMA]Fix broken runtime compilation
Jun 19, 2026
1db5a35
[DESCRIPT] Transformations
Jun 22, 2026
0969cfb
[DESCRIPT] Update mypy python version
Jun 26, 2026
0a5a474
[TMA]New version of the TMA tutorial
Jun 19, 2026
4a47866
[TMA]add plotly as requirement
Jun 22, 2026
9af923d
[TMA] Detection for all Intel models
Jun 22, 2026
2471e75
[TMA]update HW counters Marimo tutorial
Jun 22, 2026
622e026
[TMA]run all button
Jun 23, 2026
0b5035f
[TMA]fix pseudo-code
Jun 24, 2026
2115dda
[TMA]Show assembly output
Jun 24, 2026
67f2e9a
[TMA] update tma marimo tutorial
Jun 24, 2026
2e2c2bb
[TMA] peak perf evaluation
Jun 24, 2026
e2d0a4e
[TMA] step 7
Jun 24, 2026
d4ee346
[TMA] sandbox
Jun 25, 2026
ea1696f
[TMA] fix warning msg, foldable dictionary & supported arch
Jun 26, 2026
1d81154
[TMA] remove debug output
Jun 26, 2026
48ce327
[TMA]opti: only check cpu model once + refactor tma implementation
Jun 26, 2026
e2defec
[TMA] remove unused package
Jun 29, 2026
4064069
[TMA] add pyplot as optional dependency
Jun 29, 2026
0f07385
[TMA] Change marimo output limit
Jun 29, 2026
3b15c9d
[TMA] update HW tutorial
Jun 29, 2026
6f52389
[TMA] Fix declaration for MacOS compilation
Jun 29, 2026
1e4ed16
[TMA] TMAs are now correctly calculated when evaluate with packed args
Jun 29, 2026
18c0692
[TMA] Fix : double include of cpuid.h with older gcc version
Jun 30, 2026
24b384e
[DESCRIPT] Cumulative perf graph
May 29, 2026
88411d6
[DESCRIPT] Adding paragraphs for Tiling and Splitting
Jul 3, 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
811 changes: 811 additions & 0 deletions docs/tutorials/descript++_notebook.py

Large diffs are not rendered by default.

1,085 changes: 1,085 additions & 0 deletions docs/tutorials/hw_counters_introduction_v2.py

Large diffs are not rendered by default.

9 changes: 7 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,10 @@ dev = [
"pytest-xdist",
"pyright==1.1.407",
"types-PyYAML",
"marimo==0.19.6",
"marimo>=0.20.0",
"ruff==0.14.10",
"matplotlib",
"plotly"
]

[tool.setuptools]
Expand Down Expand Up @@ -66,7 +68,7 @@ reportMissingImports = false
#reportMissingTypeArgument = "error"

[tool.mypy]
python_version = "3.10"
python_version = "3.12"
packages = ["xtc", "docs.marimo"]
ignore_missing_imports = true
check_untyped_defs = true
Expand Down Expand Up @@ -102,3 +104,6 @@ exclude = [
]
line-length = 88
indent-width = 4

[tool.marimo.runtime]
output_max_bytes = 11_000_000
2 changes: 2 additions & 0 deletions requirements_dev.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,5 @@ pytest-xdist
pyright==1.1.407
types-PyYAML
ruff==0.14.10
altair
plotly
40 changes: 38 additions & 2 deletions src/xtc/cli/display_results.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,16 +85,27 @@ def draw_cor(
Y: Sequence[float],
ref_label: str | None = None,
label: str | None = None,
alpha: float = 1,
):
ax.scatter(
Yref,
Y,
label=label,
alpha=alpha,
)
if ref_label:
ax.set_xlabel(ref_label)


def draw_diag(
ax: Any,
ymin: float = 0,
ymax: float = 1,
):
xy = [[ymin, ymax]] * 2
ax.plot(*xy, alpha=0.6, color="grey", linestyle="--")


def save_fig(fname: str | Path):
fig = plt.gcf()
dpi = fig.dpi
Expand All @@ -120,6 +131,11 @@ def display_results(results: Sequence[ns], args: ns):
setattr(axes, type, axs[idx])
idx += 1

Ymin = min([min(r.Y) for r in results])
Ymax = max([max(r.Y) for r in results])
ymin = (Ymin * 100) // 10 / 10
ymax = (Ymax * 100 + 9) // 10 / 10

if args.pmf:
for res in results:
draw_pmf(axes.pmf, res.Y, label=res.label)
Expand All @@ -134,10 +150,18 @@ def display_results(results: Sequence[ns], args: ns):

if args.cor:
assert len(results) >= 2
if args.diag:
draw_diag(axes.cor, ymin, ymax)
ref = results[0]
for res in results[1:]:
print("XXX", len(ref.Y), len(res.Y))
draw_cor(axes.cor, ref.Y, res.Y, ref_label=ref.label, label=res.label)
draw_cor(
axes.cor,
ref.Y,
res.Y,
ref_label=ref.label,
label=res.label,
alpha=args.alpha,
)
axes.cor.legend(loc="upper left")
axes.cor.set_title("Peak performance correlation")

Expand Down Expand Up @@ -175,12 +199,24 @@ def main():
default=False,
help="draw correlation",
)
parser.add_argument(
"--diag",
action=argparse.BooleanOptionalAction,
default=True,
help="draw diagonal on correlation",
)
parser.add_argument(
"--show",
action=argparse.BooleanOptionalAction,
default=True,
help="show figure",
)
parser.add_argument(
"--alpha",
type=float,
default=0.6,
help="correlation alpha",
)
parser.add_argument(
"--debug", action=argparse.BooleanOptionalAction, help="debug mode"
)
Expand Down
Loading
Loading