CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
48 lines
2.4 KiB
Markdown
48 lines
2.4 KiB
Markdown
Intro:
|
|
|
|
Tensile YAML files are composed of 5 components (Header, (Problem) Type, Solution(s), Problems, and Footer.
|
|
The files here are partitioned into modular sections that allow these sections to be maintained.
|
|
and documented separately, and combined in very flexible manner using an easy Makefile-based editing system.
|
|
- Problem sizes (DeepSpeech, ResNet50, etc) can be kept in a single file and then merged as-needed into YAML files
|
|
for different problem type (Single, Half, and Mixed).
|
|
- Different solutions (a quick tune or an expensive explore) can be easily selected.
|
|
|
|
A sample Makefile is provides to combine the YAML file. Makefile provides simple Variable support to eliminate
|
|
replication and provide some composability.
|
|
On some shells (zsh), autocompletion identifies valid targets in the makefile and provides a convenient
|
|
commandline shortcut for specifying targets.
|
|
|
|
|
|
The components all use the extension 'yml' to distinguish them from Tensile inputs (yaml).
|
|
These are the 5 components that are combined into a Tensile YAML file:
|
|
- Header :
|
|
GlobalParameters such as DataInitTypes, SolutionSelectionAlg, SleepPercent, CMakeBuildType, etc.
|
|
Example: boiler/header.yml
|
|
|
|
- Type :
|
|
The problem type such as (transpose ops, dataType (half,float,double), mixed, UseBeta, etc
|
|
Example: types/sgemm_nn.yml
|
|
|
|
- Solution(s) :
|
|
Multiple parameters describing the solutions. A Tensile YAML file can contain multiple solution sections, each
|
|
followed by one or more problems. Solutions can vary significantly in how many solutions they create and thus
|
|
how long Tensile requires to generate kernels and explore the design space. For example:
|
|
- Quick solutions create a small set of solutions that can be quickly explored.
|
|
- Explore solutions create a large number of solutiosn that take a few hours to explore.
|
|
|
|
- Some solutions can target different matrix configs. For example:
|
|
- 'large' targets large,square,friendly matrix configs where large tiles sizes and prefetching are winners.
|
|
- 'skinny' targets smaller configs where register consumption and smaller tile sizes are winners.
|
|
- other configs may be appropriate for powers-of-two or other unusual configs.
|
|
|
|
- Example: solutions/nn/sgemm_quick.yml
|
|
|
|
|
|
|
|
- Problem(s):
|
|
- Problems define Exact or Ranges to explore.
|
|
- Example: problems/nn/deepbench_large.yml
|
|
|
|
- Footer:
|
|
Define library logic that should be used.
|