Skip to content

address comments from Pareena #424

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

Open
wants to merge 31 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
b3a9692
add 5G On Arm
Jun 5, 2023
8d979bf
Merge branch 'ArmDeveloperEcosystem:main' into main
westlaker Jun 5, 2023
4624679
add more contents and modify some existing one
westlaker Jun 8, 2023
edda2a4
Merge branch 'main' of https://github.com/westlaker/arm-learning-path…
westlaker Jun 8, 2023
3b0a364
Merge branch 'ArmDeveloperEcosystem:main' into main
westlaker Jun 8, 2023
0f8630c
Merge branch 'main' of https://github.com/westlaker/arm-learning-path…
westlaker Jun 8, 2023
aa9587b
further editing...
westlaker Jun 21, 2023
489ca9f
further editing in review and next step.
westlaker Jun 22, 2023
d96fe7a
Merge branch 'ArmDeveloperEcosystem:main' into main
westlaker Jun 22, 2023
b034dbb
some more removal
westlaker Jun 28, 2023
4ebc703
Merge branch 'main' of https://github.com/westlaker/arm-learning-path…
westlaker Jun 28, 2023
07f4b2f
Merge branch 'ArmDeveloperEcosystem:main' into main
westlaker Jun 28, 2023
dde4088
updated
westlaker Jul 20, 2023
45fc203
Merge branch 'ArmDeveloperEcosystem:main' into main
westlaker Jul 20, 2023
863ead8
Update _index.md
pareenaverma Jul 21, 2023
a032915
Update how-to-1.md
pareenaverma Jul 21, 2023
13f03df
Update how-to-2.md
pareenaverma Jul 21, 2023
6da2997
Merge branch 'ArmDeveloperEcosystem:main' into main
westlaker Jul 26, 2023
3ec387f
added more Acronyms explaination.
westlaker Jul 26, 2023
a20c698
Update _next-steps.md
pareenaverma Jul 28, 2023
28436fe
Update _review.md
pareenaverma Jul 28, 2023
32ca222
Update how-to-1.md
pareenaverma Jul 28, 2023
6ecd8aa
Update how-to-2.md
pareenaverma Jul 28, 2023
b39feb5
Update how-to-3.md
pareenaverma Jul 28, 2023
86f846d
Update how-to-1.md
pareenaverma Jul 28, 2023
aa08f98
Update how-to-2.md
pareenaverma Jul 28, 2023
8613400
Update how-to-2.md
pareenaverma Jul 28, 2023
0472307
Update how-to-3.md
pareenaverma Jul 28, 2023
3fbd16e
Merge branch 'ArmDeveloperEcosystem:main' into main
westlaker Jul 28, 2023
7e2eee0
more modification based on feedback from Pareena
westlaker Jul 28, 2023
5d91e09
Merge branch 'ArmDeveloperEcosystem:main' into main
westlaker Jul 31, 2023
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
title: 5G On Arm Handbook

learning_path_main_page: 'yes'
minutes_to_complete: 10

who_is_this_for: This is a introductory topic for software developers interested in running the 5G stack on Arm

learning_objectives:
- Choose the appropriate Arm server for running the 5G stack
- Tune the selected servers for running the 5G stack

prerequisites:
- Arm server
- 5G ORAN stack

author_primary: Arm

### Tags
skilllevels: Introductory
subjects: 5G
armips:
- Neoverse
tools_software_languages:
- SVE
- GCC
- 5G ORAN
operatingsystems:
- Linux

### FIXED, DO NOT MODIFY
# ================================================================================
weight: 1 # _index.md always has weight of 1 to order correctly
layout: "learningpathall" # All files under learning paths have this same wrapper
learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content.
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
# ================================================================================
# Edit
# ================================================================================

next_step_guidance: As a next step, we recommend the learning path about getting started with the Arm 5G RAN Acceleration Library.

recommended_path: "/learning-paths/servers-and-cloud-computing/ran/"
# Link to the next learning path being recommended.

# further_reading links to references related to this path. Can be:
# Manuals for a tool / software mentioned (type: documentation)
# Blog about related topics (type: blog)
# General online references (type: website)

further_reading:
- resource:
title: 5G Infrastructure
link: https://www.arm.com/en/markets/5g/infrastructure
type: website
- resource:
title: Arm RAN Acceleration Library Reference Guide
link: https://developer.arm.com/documentation/102249
type: documentation
- resource:
title: 5G RAN for Dummies
link: https://www.arm.com/resources/dummies-guide/5g-ran
type: documentation

# ================================================================================
# FIXED, DO NOT MODIFY
# ================================================================================
weight: 21 # set to always be larger than the content in this path, and one more than 'review'
title: "Next Steps" # Always the same
layout: "learningpathall" # All files under learning paths have this same wrapper
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
---
# ================================================================================
# Edit
# ================================================================================

# Always 3 questions. Should try to test the reader's knowledge, and reinforce the key points you want them to remember.
# question: A one sentence question
# answers: The correct answers (from 2-4 answer options only). Should be surrounded by quotes.
# correct_answer: An integer indicating what answer is correct (index starts from 0)
# explanation: A short (1-3 sentence) explanation of why the correct answer is correct. Can add additional context if desired

review:
- questions:
question: >
Which server has better support of Nvidia A100X?
answers:
- "HPE"
- "Foxconn"
- "Gigabyte"
- "WIWYNN"
- "Supermicro"
- "All the above"
correct_answer: 5
explanation: >
The Supermicro server is designed to support A100X with correct orientation for its ethernet ports
- questions:
question: >
Which statement is correct?
answers:
- "Regular Linux kernel is sufficient for supporting the 5G stack"
- "Low latency Linux kernel is required for supporting 5G stack"
correct_answer: 2
explanation: >
Low Latency Kernel minimizes the time it takes for the operating system to respond to events and processes, it is essential for the latency sensitive processes in the 5G stack.
- questions:
question: >
What is the potential issue with a 2P server?
answers:
- "PCIe devices sit on different node from the CPU"
- "Cross socket communication overhead"
- "Sometimes you can't put the PCIe device and CPU on same node"
- "All the above"
correct_answer: 4
explanation: >
These are all potential issues related to multiple socket servers.
- questions:
question: >
What is isolcpus?
answers:
- "Remove the core off access"
- "Isolate the core off limit"
- "Reserved for real-time or other special purpose tasks"
correct_answer: 3
explanation: >
The isolcpus setting is important for dedicated tasks that are not interfered by the kernel
- questions:
question: >
How do you affinitize your program to cores?
answers:
- "taskset"
- "numactl"
- "pthread_setaffinity_np"
- "All the above"
correct_answer: 4
explanation: >
These are all the ways you can assign your program to cpu/cores




# ================================================================================
# FIXED, DO NOT MODIFY
# ================================================================================
title: "Review" # Always the same title
weight: 20 # Set to always be larger than the content in this path
layout: "learningpathall" # All files under learning paths have this same wrapper
---
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
title: Choose the appropriate Arm server for running the 5G stack
weight: 2

### FIXED, DO NOT MODIFY
layout: learningpathall
---

## Choose the appropriate Arm 5G Servers
---
It is essential to choose the appropriate Arm server to run the 5G stack on. In this section, you can learn about the different configurations of Arm servers the 5G stack has been developed and tested on. You can also learn about what needs to be considered when choosing the appropriate Arm server for this task.

#### Extensive 5G development and testing on Arm servers has been done on the hardware configurations and software components listed below:

1. 5G-in-one-box (software only)

2. 5G with Inline L1 Accelerator

3. 5G with L1 GPU Offload

4. 5G with Lookaside Accelerator Offload

#### The Arm server platforms listed below have been evaluated to run the 5G stack on:

1. Gigabyte (Mt. Snow 1P)

2. WIWYNN (Mt. Jade 2P)

3. Foxconn (Mt. Collins 2P)

4. Supermicro (R12SPD 1P)

5. HPE (ProLiant RL300 Gen11 (P59870-B21) 1P)

#### Things to consider:

1P (Single Processor) vs 2P (Dual Processors) systems:

For evaluation purposes, a 1P system is recommended which should be sufficient to run any 5G software stacks (L1 physical layer/L2 datalink layer/L3 network layer) considering that the Arm CPU has at least 80 cores. 2P system would be great to run more processes on single box, however, socket communication should be avoided, especially when some PCIe devices sit in a different node across from the CPU.

1U (One Rack Unit) vs 2U (Two Rack Units) systems:

1U is sufficient to run 5G CN (Core Network) software or pure 5G software stacks while 2U is required when you need additional hardware such as several PCIe cards or a full length PCIe card for L1 processing, for example, the Nvidia A100X and Genvisio.

#### Accommodating PCIe Accelerators

Due to the nature of PCIe devices, you need to carefully select the right Arm server to accommodate the PCIe Accelerators you are going to use.

For full length PCIe cards, you need at least a 2U server, however not every 2U server will support full length/full width PCIe devices. Also, some PCIe full profile devices require more power to run properly, for example, Supermicro's Arm server better accommodate some Inline L1 Accelerator cards.

For PCIe cards taking up two PCIe slots like Nvidia A100X, not every 2U will be right choice. Because A100X combines GPU and Mellanox NIC (Network Interface Card) in one device, you need to make sure its NIC ports face out. At this moment, only Supermicro Arm server has designed its server with the full length PCIe cards such as Nvidia A100X converged card.





Loading