Skip to content

updated GPU Occupancy Calculator #2353

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
30 changes: 12 additions & 18 deletions Tools/GPU-Occupancy-Calculator/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,26 +7,20 @@ for GPU/HPC application development.

## Tool Details

* Allows user to pick a GPU SKU, input Global Size of HPC application,
Work-Group(WG) size, Sub-Group size, Shared Local Memory(SLM) size and barrier
usage.
* Computes Sub-Slice/Dual Sub-Slice (SS/DSS) Theoretical Occupancy based
on the inputs.
* Generates charts for Impact of varying Work-Group size and
Impact of varying Shared Local Memory size.
* Generates a list of all valid
Work-Group sizes that can be used and corresponding Occupancy.
* Generates a list of optimal configuration values for WG, SG and SLM limit that
will get 100% Occupancy.
The Intel GPU Occupancy tool will compute the theoretical GPU Occupancy for Intel GPU devices based on GPU Kernel code parameters. The Occupancy value will determine whether the GPU is efficiently utilizing all the GPU hardware resources. The tool will also generate graphs that will help optimize GPU Occupancy.

* Allows user to select a GPU, input Global Size of HPC application,
Work-Group(WG) size, Sub-Group(SG) size and Shared Local Memory(SLM) size.
* Computes Theoretical Occupancy based on the inputs.
* Generates charts for Impact of varying Work-Group size, Impact of varying Shared Local Memory size and GPU Occupancy graph for the workload.

## Usage
* Open Page: [oneapi-src.github.io/oneAPI-samples/Tools/GPU-Occupancy-Calculator/](https://oneapi-src.github.io/oneAPI-samples/Tools/GPU-Occupancy-Calculator/)
* Select a GPU from the dropdown and change "EU Count" if necessary OR select
* Select a GPU from the dropdown and change "XVE Count" if necessary OR select
the option to enter PCI ID for GPU.
* The tool will load some default values for Global Size, WG size, SG size,
SLM size and will compute Occupancy and generate graphs.
* Change the values of GPU target, Global size, WG size, SG size, SLM size or
Barrier usage based on your HPC application to calculate Occupancy and tune application.
* The tool will load some default values for Global Size, Work-Group size, Sub-Group size,
Local Memory size and will compute Occupancy and generate graphs.
* Change the values of Global size, Work-Group size, Sub-Group size or Local Memory size based on your HPC application to calculate Occupancy and tune application.


### Custom GPU Configuration:
Expand All @@ -36,7 +30,7 @@ An example of a custom configuration and corresponding description are listed be

Example of Intel GPU Occupancy Calculator with Custom GPU configuration:

`https://oneapi-src.github.io/oneAPI-samples/Tools/GPU-Occupancy-Calculator/?gpu=8;8;512;64;true;[32,16];128;128;[0,1,2,4,8,16,24,32,48,64,96,128];1024;64;32;My_GPU`
`https://oneapi-src.github.io/oneAPI-samples/Tools/GPU-Occupancy-Calculator/?gpu=8;8;512;64;true;[32,16];128;128;[0,1,2,4,8,16,24,32,48,64,96,128];1024;64;64;My_GPU`

URL Parameters details are as follows:
```
Expand All @@ -51,7 +45,7 @@ URL Parameters details are as follows:
TG_SLM_Sizes = [0,1,2,4,8,16,24,32,48,64,96,128]
Max_Work_Group_Size = 1024
Max_Num_Of_Workgroups = 64
Max_Num_Of_Barrier_Registers = 32
Max_Num_Of_Barrier_Registers = 64
Custom_GPU_Name (Optional) = My_GPU
```
## License
Expand Down
Loading