You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .github/skills/seo-geo-aeo-review/SKILL.md
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,9 +23,11 @@ For focused front matter `description` edits only, use `.github/skills/metadata-
23
23
24
24
## Workflow
25
25
26
+
On any given page:
27
+
26
28
1. Identify the target content type and target developer intent.
27
-
2. Read the title, front matter description, headings, introduction, prerequisites, main task flow, validation, conclusion, and further reading. If you've previously read a page, use context and don't re-read it unless there's a change since the last read.
28
-
3.State the page's owned task in one sentence. If the task is unclear or too broad, flag it.
29
+
2. Read the title, front matter description, headings, introduction, prerequisites, main task flow, validation, conclusion, and further reading. If you've previously read the page, use context and don't re-read it unless asked to.
30
+
3.Summarize the page's owned task in one sentence. If the task is unclear or too broad, flag it.
29
31
4. Review SEO signals:
30
32
- The title is task-led and includes the main technology, platform, or tool.
31
33
- The `description` is one concise sentence that states the task, context, and outcome.
Copy file name to clipboardExpand all lines: .github/skills/writing-style-review/SKILL.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,10 +10,10 @@ Use this skill for granular prose, voice, readability, terminology, and style re
10
10
## Workflow
11
11
12
12
1. Identify the target file, section, or selected text.
13
-
2. Read surrounding context so style edits preserve the author's intent and the technical flow. If you've previously read the page, use context and don't re-read it unless there's a change since the last read.
13
+
2. Read surrounding context so style edits preserve the author's intent and the technical flow. If you've previously read the page, use context and don't re-read it unless asked to.
14
14
3. Review the target against the guidelines defined in this skill.
15
15
4. Depending on request type, do the following:
16
-
- For review requests, report high-impact style issues by file and line when possible.
16
+
- For review requests, report style issues by file and line when possible, ordered by severity.
17
17
- For edit requests, make focused rewrites, then re-open changed sections to check Markdown, shortcodes, links, and code fences.
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/performix-instruction-mix/_index.md
+62-12Lines changed: 62 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,32 +1,78 @@
1
1
---
2
-
title: Profile GPT-2 instruction mix with Arm Performix
2
+
title: Profile GPT-2 inference with the Arm Performix Instruction Mix recipe
3
3
4
-
draft: true
5
-
cascade:
6
-
draft: true
7
-
8
-
description: Learn how to profile GPT-2 inference on Arm Neoverse with the Arm Performix Instruction Mix recipe, identify scalar versus vector execution patterns, and improve throughput with NEON, SVE, and KleidiAI kernels.
4
+
description: Profile GPT-2 inference on Arm Neoverse with the Arm Performix Instruction Mix recipe, identify scalar versus vector execution patterns, and improve throughput with Neon, SVE, and KleidiAI kernels.
9
5
10
6
minutes_to_complete: 45
11
7
12
-
who_is_this_for: This is an introductory topic for developers who want to get started using the instruction mix recipe in Arm Performix through a practical example.
8
+
who_is_this_for: This is an introductory topic for developers who want to get started using the Arm Performix Instruction Mix recipe through a practical example.
13
9
14
10
learning_objectives:
15
-
- Explain how the Instruction Mix recipe combines static disassembly with runtime sampling to show execution behavior
11
+
- Use the Instruction Mix recipe to combine static disassembly with runtime sampling to show execution behavior
16
12
- Build and run the GPT-2 inference example on an Arm Linux server
17
13
- Identify why matrix multiplication dominates runtime and how vectorization changes the instruction mix
18
-
- Compare throughput and instruction mix across scalar, NEON, SVE, and KleidiAI implementations
14
+
- Compare throughput and instruction mix across scalar, Neon, SVE, and KleidiAI implementations
19
15
20
16
prerequisites:
21
-
- Access to Arm Performix configured with a remote Arm Linux target. For setup, see the [Arm Performix install guide](/install-guides/performix/)
17
+
- Access to Arm Performix configured with a remote Arm Linux target. For setup, see the [Arm Performix install guide](/install-guides/performix/).
22
18
- Basic understanding of C++ and compiler optimization
23
19
- Basic understanding of matrix multiplication
24
20
- Basic understanding of writing SIMD code with Neon or SVE
title: Understand profiling with Arm Performix Instruction Mix
3
+
description: See how the Arm Performix Instruction Mix recipe combines static disassembly and runtime sampling to reveal scalar and vector execution patterns in GPT-2 inference.
3
4
weight: 2
4
5
5
6
### FIXED, DO NOT MODIFY
6
7
layout: learningpathall
7
8
---
8
9
9
-
## Instruction mix overview
10
+
## Why to use the Arm Performix Instruction Mix recipe
10
11
11
12
The Arm Performix Instruction Mix recipe shows the types and proportions of machine instructions your workload executes at runtime and in static analysis, so you can see how efficiently your code uses Arm CPU hardware resources.
12
13
13
-
The Instruction Mix recipe classifies each instruction into a group. The available groups depend on the Neoverse architecture version you are profiling. Therefore the categories you see may vary depending on the version of Arm Neoverse you are using. Typical categories include:
14
+
The Instruction Mix recipe classifies each instruction into a group. The available groups depend on the Neoverse architecture version you are profiling. Therefore the categories you see might vary depending on the version of Arm Neoverse you are using. Typical categories include:
14
15
15
16
- integer and floating-point arithmetic
16
17
- memory loads and stores (including exclusive operations)
17
18
- control flow instructions, such as branches and loops
18
19
- specialized instructions, such as cryptographic operations
19
-
- SIMD (Single Instruction, Multiple Data) instructions, including NEON (fixed 128-bit) and SVE (scalable vector length)
20
+
- SIMD (Single Instruction, Multiple Data) instructions, including Neon (fixed 128-bit) and SVE (scalable vector length)
20
21
21
-
The instruction mix result gives you two complementary views:
22
+
The Instruction Mix result gives you two complementary views:
22
23
23
24
- static analysis, which inspects compiled machine code without running it
24
25
- dynamic analysis, which measures instruction usage during real execution
25
26
26
-
Together, these views help you verify whether architecture-specific features are actually active in hot code paths.
27
+
Together, these views help you verify whether architecture-specific features are active in hot code paths.
27
28
28
-
## Detecting missed vectorization
29
+
Instruction Mix is useful when you need to confirm that performance-critical code uses Arm CPU features effectively. This is especially helpful when you are, for example, validating the effectiveness of compiler autovectorization.
29
30
30
-
Instruction mix is useful when you need to confirm that performance-critical code uses Arm CPU features effectively. This is especially helpful when you are, for example, validating the effectiveness of compiler autovectorization.
31
-
32
-
For example, if a hot function is mostly scalar at runtime when you expected NEON or SVE activity, that often indicates missed vectorization opportunities. You can then focus optimization work on compiler flags, data layout, loop structure, and kernel implementation to improve throughput where it matters most.
31
+
For example, if a hot function is mostly scalar at runtime when you expected Neon or SVE activity, that often indicates missed vectorization opportunities. You can then focus optimization work on compiler flags, data layout, loop structure, and kernel implementation to improve throughput where it matters most.
33
32
34
33
## GPT-2 as a test workload
35
34
36
-
You can run the [GPT-2 Medium](https://huggingface.co/openai-community/gpt2-medium) model on a minimal C++ inference engine to analyze instruction mix and throughput. This model is available under a [modified MIT License](https://github.com/openai/gpt-2/blob/master/LICENSE). You will confirm that matrix multiplication (`matmul`) is the hot path, then compare how scalar, NEON, and SVE implementations change instruction behavior and token generation speed.
35
+
You can run the [GPT-2 Medium](https://huggingface.co/openai-community/gpt2-medium) model on a minimal C++ inference engine to analyze instruction mix and throughput. This model is available under a [modified MIT License](https://github.com/openai/gpt-2/blob/master/LICENSE). You will confirm that matrix multiplication (`matmul`) is the hot path, then compare how scalar, Neon, and SVE implementations change instruction behavior and token generation speed.
36
+
37
+
You'll implement only the forward inference path, with no back propagation or training. You don't need to understand the full transformer architecture to complete this Learning Path. Familiarity with matrix multiplication is enough. For background on GPT-2, see the original 2019 paper, [Language Models are Unsupervised Multitask Learners](https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf).
37
38
38
-
This example implements only the forward inference path, with no back propagation or training. You do not need to understand the full transformer architecture to complete this Learning Path. Familiarity with matrix multiplication is enough. For background on GPT-2, see the original 2019 paper, [Language Models are Unsupervised Multitask Learners](https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf)
39
+
You'll also try implementing your own `matmul` kernels that target Neon and SVE, then use instruction mix data to verify that these vector paths are active and improving throughput.
39
40
40
-
You will also try implementing your own `matmul` kernels that target NEON and SVE, then use instruction mix data to verify that these vector paths are active and improving throughput.
41
+
## What you've learned and what's next
41
42
42
-
## Next steps
43
+
You now know what the Arm Instruction Mix recipe represents and why it matters for LLM inference optimization on Arm.
43
44
44
-
You now know what instruction mix represents and why it matters for LLM inference optimization on Arm. Next, you'll set up the GPT-2 example, build the binaries, and run a baseline test.
45
+
Next, you'll set up the GPT-2 example, build the binaries, and run a baseline test.
0 commit comments