diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..887a2c18 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# SCM syntax highlighting & preventing 3-way merges +pixi.lock merge=binary linguist-language=YAML linguist-generated=true diff --git a/.gitignore b/.gitignore index bed468d7..40b5a097 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,6 @@ dev/profiles .pre-commit-config.yaml cufile.log .codex +# pixi environments +.pixi/* +!.pixi/config.toml diff --git a/bench/report.py b/bench/report.py index 6fddb196..c81a973a 100755 --- a/bench/report.py +++ b/bench/report.py @@ -75,6 +75,8 @@ def _stage_table(r: Results) -> Table: t.add_column("stage", style="cyan", no_wrap=True) t.add_column("unit", style="dim", no_wrap=True) t.add_column("GB/s_in", justify="right") + t.add_column("GB/s_out", justify="right") + t.add_column("load%", justify="right") t.add_column("ms_total", justify="right") t.add_column("ms_avg", justify="right") t.add_column("ms_best", justify="right") @@ -109,14 +111,18 @@ def _stage_table(r: Results) -> Table: "pop_wait": "dim", } + wall_ms = r.timings_ms.wall for s in r.stages: secs = s.ms_total / 1e3 c = color.get(s.name, "white") u = unit_style.get(s.name, "dim") + load = f"{100 * s.ms_total / wall_ms:.0f}" if wall_ms > 0 else "-" t.add_row( Text(s.name, style=c), Text(s.unit, style=u), _fmt_gbps(s.input_bytes, secs), + _fmt_gbps(s.output_bytes, secs), + load, _fmt_ms(s.ms_total), _fmt_ms(s.ms_avg) if s.count else "-", _fmt_ms(s.ms_best) if s.count else "-", diff --git a/pyproject.toml b/pyproject.toml index 5ade4a39..9e7d6f6b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -106,3 +106,20 @@ exclude_lines = [ ] show_missing = true skip_covered = true + +# ---- pixi ------------------------------------------------------------- + +[tool.pixi.workspace] +channels = ["conda-forge"] +platforms = ["linux-64"] + +[tool.pixi.pypi-dependencies] +damacy = { path = ".", editable = true } + +[tool.pixi.environments] +default = { solve-group = "default" } +dev = { features = ["dev"], solve-group = "default" } +docs = { features = ["docs"], solve-group = "default" } +gpu = { features = ["gpu"], solve-group = "default" } + +[tool.pixi.tasks]