Skip to content

Commit fdadcb9

Browse files
authored
Merge pull request #1 from AlejandroCasas-oracle/main
Fix capitalization of "NVIDIA" in workshop and provisioning documenta…
2 parents 6e72008 + 040d4f9 commit fdadcb9

2 files changed

Lines changed: 79 additions & 67 deletions

File tree

cuopt/introduction/introduction.md

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,18 @@
22

33
## About this Workshop
44

5-
In this workshop we will run Nvidia container on oci instance with an A10 shape which has GPU. You will launch an A10 instance with oracle linux and run a set of commands to achieve it.
5+
In this workshop we will run NVIDIA container on oci instance with an A10 shape which has GPU. You will launch an A10 instance with oracle linux and run a set of commands to achieve it.
66

7-
NVIDIA cuOpt is an optimization tool that specializes in routing. It is run as a microservice in the cloud using the container provided. The cuOpt microservice leverages OpenAPI standards, serving endpoints running on port 8000 (by default) to accept optimization input data and return optimized routing solutions.
87

98
Estimated Workshop Time: 45 minutes
109

1110
### Objectives
1211

13-
Objective of this workshop is to set-up Nvidia container on oci instance with an A10 shape which has GPU.
12+
Objective of this workshop is to set-up NVIDIA container on oci instance with an A10 shape which has GPU.
1413

1514
In this workshop, you will learn how to:
1615

17-
* Configure & set-up Nvidia container on oci instance
16+
* Configure & set-up NVIDIA container on oci instance
1817

1918
### Prerequisites
2019

@@ -23,9 +22,27 @@ This lab assumes you have:
2322
* An Oracle Cloud account.
2423
* Administrator permissions or permissions to use the OCI Compute, Identity Domains and A10 shapes
2524

25+
## What Is NVIDIA cuOpt?
26+
27+
NVIDIA cuOpt is an open-source, GPU-accelerated engine for decision optimization, excelling in mixed-integer programming (MIP), linear programming (LP), and vehicle routing problems (VRPs). Designed to tackle large-scale problems with millions of variables and constraints, cuOpt enables accelerated decision-making.
28+
29+
NVIDIA cuOpt run as a microservice in the cloud using the container provided. The cuOpt microservice leverages OpenAPI standards, serving endpoints running on port 8000 (by default) to accept optimization input data and return optimized routing solutions.
30+
31+
## How cuOpt Is Being Used
32+
33+
### Supply Chain Management
34+
Optimizing resource allocation in complex supply chains requires efficiently distributing limited resources while adapting to real-time changes.
35+
36+
### Fleet Management
37+
Efficient scheduling and route planning are essential for managing inbound and outbound transportation of goods and vehicles, especially for long-haul fleets.
38+
39+
### Last-Mile Delivery
40+
Efficiently dispatching truck fleets from distribution centers to retail stores and end customers is critical for minimizing costs and meeting delivery expectations.
41+
42+
2643
## Learn More
2744

28-
* [What is NVIDIA cuOpt?](https://catalog.ngc.nvidia.com/orgs/nvidia/teams/cuopt/containers/cuopt)
45+
* [What is NVIDIA cuOpt?](https://catalog.ngc.NVIDIA.com/orgs/NVIDIA/teams/cuopt/containers/cuopt)
2946

3047
You may now proceed to the next lab.
3148

cuopt/provision/provision.md

Lines changed: 57 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,14 @@
1-
# Provision of Nvidia Container
1+
# Provision of NVIDIA Container
22

33
## Introduction
44

5-
This lab will take you through the steps needed to provision Nvidia container on oci instance with an A10 shape which has GPU,
5+
This lab will take you through the steps needed to provision NVIDIA container on oci instance with an A10 shape which has GPU,
66

77
Estimated Time: 45 minutes
88

9-
### About NVIDIA cuOpt
10-
11-
NVIDIA cuOpt is an optimization tool that specializes in routing. It is run as a microservice in the cloud using the container provided. The cuOpt microservice leverages OpenAPI standards, serving endpoints running on port 5000 (by default) to accept optimization input data and return optimized routing solutions.
12-
139
### Objectives
1410

15-
Provisioning of Nvidia container
11+
Provisioning of NVIDIA container
1612

1713
### Prerequisites
1814

@@ -25,17 +21,15 @@ This lab assumes you have:
2521

2622
1. Go to Compute -> Instance -> Create Instance. Under Image and Shape choose A10 shape as shown in the image below.
2723

28-
![A10](images/a10.png)
24+
![A10](images/a10.png "List of OCI instances shapes")
2925

3026
2. Click on Change Image and select the latest GPU version (one on the top) as Image Build under Oracle Linux 8. Shown in the image below.
3127

32-
![GPU](images/gpu.png)
28+
![GPU](images/gpu.png "Drop down menu that show the different image build for the GPU shape")
3329

34-
3. Provide the information for **VCN**, **Subnet (It has to be Public)**, **Add SSH Keys (Add keys to access your instance)**
30+
3. Provide the information for **VCN**, **Subnet (It has to be Public)**, **Add SSH Keys (Add keys to access your instance)** and click **Create**.
3531

36-
Click **Create**
37-
38-
![Create_Instance](images/create_instance.png)
32+
![Create_Instance](images/create_instance.png "Setting up instance's connection parameters")
3933

4034
## Task 2: Install NVIDIA container toolkit
4135

@@ -49,122 +43,123 @@ Click **Create**
4943
</copy>
5044
```
5145
52-
5. Install nvidia-container-toolkit
46+
5. Install NVIDIA-container-toolkit
5347
5448
```text
5549
<copy>
56-
curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
50+
curl -s -L https://NVIDIA.github.io/libNVIDIA-container/stable/rpm/NVIDIA-container-toolkit.repo | sudo tee /etc/yum.repos.d/NVIDIA-container-toolkit.repo
5751
</copy>
5852
```
5953
6054
6. Run the following command
6155
6256
```text
6357
<copy>
64-
sudo yum install -y nvidia-container-toolkit
58+
sudo yum install -y NVIDIA-container-toolkit
6559
</copy>
6660
```
6761
6862
7. Generate CDI configuration for podman
6963
7064
```text
7165
<copy>
72-
sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml
66+
sudo NVIDIA-ctk cdi generate --output=/etc/cdi/NVIDIA.yaml
7367
</copy>
7468
```
7569
76-
8. Setup nvidia driver to be persistent across reboots
70+
8. Setup NVIDIA driver to be persistent across reboots
7771
7872
```text
7973
<copy>
80-
sudo nvidia-persistenced
74+
sudo NVIDIA-persistenced
8175
</copy>
8276
```
8377
8478
9. Run the following command.
8579
8680
```text
8781
<copy>
88-
sudo systemctl enable nvidia-persistenced
82+
sudo systemctl enable NVIDIA-persistenced
8983
</copy>
9084
```
9185
9286
10. Install podman
9387
94-
```text
95-
<copy>
96-
sudo dnf module install -y container-tools:ol8
97-
</copy>
98-
```
88+
```text
89+
<copy>
90+
sudo dnf module install -y container-tools:ol8
91+
</copy>
92+
```
9993
10094
9. Allow containers to use device files
10195
102-
```text
103-
<copy>
104-
sudo setsebool -P container_use_devices 1
105-
</copy>
106-
```
96+
```text
97+
<copy>
98+
sudo setsebool -P container_use_devices 1
99+
</copy>
100+
```
107101
108-
```text
109-
<copy>
110-
sudo setsebool -P container_manage_cgroup on
111-
</copy>
112-
```
102+
```text
103+
<copy>
104+
sudo setsebool -P container_manage_cgroup on
105+
</copy>
106+
```
113107
114108
## Task 3: Run NVIDIA cuOpt container
115109
116110
1. Run the cuopt image
117111
118112
```text
119113
<copy>
120-
sudo podman run --rm --device nvidia.com/gpu=all -p 8000:8000 -e CUOPT_SERVER_PORT=8000 docker.io/nvidia/cuopt:latest-cuda12.8-py3.12
114+
sudo podman run --rm --device NVIDIA.com/gpu=all -p 8000:8000 -e CUOPT_SERVER_PORT=8000 docker.io/NVIDIA/cuopt:latest-cuda12.8-py3.12
121115
</copy>
122116
```
123117
124118
## Task 4: Test cuOpt with an API call
125119
126-
Open a new SSH session with the following command (leave the previous one open so you will be able to see cuOpt logs) :
120+
Open a new SSH session with the following command (leave the previous one open so you will be able to see cuOpt logs):
127121
128122
```text
129-
<copy>
130-
ssh -i <ssh_key> opc@public_ip -L 8000:localhost:8000
131-
</copy>
123+
<copy>
124+
ssh -i <ssh_key> opc@public_ip -L 8000:localhost:8000
125+
</copy>
132126
```
133-
134127
```text
135-
<copy>
136-
curl --location 'http://localhost:8000/cuopt/request' \
137-
--header 'Content-Type: application/json' \
138-
--header 'Accept: application/json' \
139-
--data '{
140-
"cost_matrix_data": { "data": { "0": [[0, 1], [1, 0]] } },
141-
"task_data": {
128+
<copy>
129+
curl --location 'http://localhost:8000/cuopt/request' \
130+
--header 'Content-Type: application/json' \
131+
--header 'Accept: application/json' \
132+
--data '{
133+
"cost_matrix_data": { "data": { "0": [[0, 1], [1, 0]] } },
134+
"task_data": {
142135
"task_locations": [1],
143136
"demand": [[1]],
144137
"task_time_windows": [[0, 10]],
145138
"service_times": [1]
146-
},
147-
"fleet_data": {
148-
"vehicle_locations": [[0, 0]],
149-
"capacities": [[2]],
150-
"vehicle_time_windows": [[0, 20]]
151-
},
152-
"solver_config": { "time_limit": 1 }
153-
}'
154-
</copy>
139+
},
140+
"fleet_data": {
141+
"vehicle_locations": [[0, 0]],
142+
"capacities": [[2]],
143+
"vehicle_time_windows": [[0, 20]]
144+
},
145+
"solver_config": { "time_limit": 1 }
146+
}'
147+
</copy>
155148
```
156149

150+
157151
You will receive a reqId. Now run the following command, and you should see that the request has been completed:
158152

159153
```text
160-
<copy>
161-
curl --location 'http://localhost:8000/cuopt/result/YOUR_REQUEST_ID' \
162-
--header 'Accept: application/json'
163-
</copy>
154+
<copy>
155+
curl --location 'http://localhost:8000/cuopt/result/YOUR_REQUEST_ID' \
156+
--header 'Accept: application/json'
157+
</copy>
164158
```
159+
165160
## Task 5: Discover the cuOpt documentation
166161

167-
On your local machine, go to http://localhost:8000/cuopt/docs , where you can also run multiple tests.
162+
On your local machine, go to [http://localhost:8000/cuopt/docs](http://localhost:8000/cuopt/docs), where you can also run multiple tests.
168163

169164
## Acknowledgements
170165

0 commit comments

Comments
 (0)