Skip to content

Commit 062db04

Browse files
Merge branch 'main' into O&M-links
2 parents 161359b + 6236f61 commit 062db04

File tree

556 files changed

+64379
-1694
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

556 files changed

+64379
-1694
lines changed

.DS_Store

-6 KB
Binary file not shown.

.gitignore

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,10 @@ override.tf.json
3333
terraform.rc
3434

3535
# Terraform lock files
36-
*.lock.hcl
36+
*.lock.hcl
37+
38+
# Apple Users DS_Store
39+
.DS_Store
40+
41+
#VSC files
42+
.vscode

.vscode/extensions.json

Lines changed: 0 additions & 3 deletions
This file was deleted.

LICENSE renamed to LICENSE.txt

File renamed without changes.

Oracle Cloud Migration Service Template.md

Lines changed: 0 additions & 718 deletions
This file was deleted.

ai/ai-ecosystem/README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Generative AI Ecosystem
2+
3+
Reviewed: 02.07.2025
4+
5+
# Team Publications
6+
7+
## GitHub
8+
9+
- [NVIDIA Omniverse Digital Twin](https://github.com/oracle-devrel/technology-engineering/tree/main/ai/ai-ecosystem/nvidia-omniverse-digital-twin)
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
# Digital Twin Example using NVIDIA Omniverse
2+
3+
This solution demonstrates how to run a digital twin of an automobile in a wind
4+
tunnel to evaluate the aerodynamic effect of modifications to the features of
5+
the car.
6+
The digital twin runs on the NVIDIA Omniverse software platform and uses GPU
7+
nodes on Oracle Cloud Infrastructure (OCI) to visualize the airflow over the
8+
car as well as AI inference to quickly assess how changes to the car will
9+
affect the airflow.
10+
11+
Reviewed: 02.07.2025
12+
13+
# When to use this asset?
14+
15+
This asset is ideal for developers, educators, or any professional looking for:
16+
17+
- Demonstrate Oracle Cloud capabilities: This is a great demo asset to showcase
18+
the abilities of OCI to run applications utilizing the NVIDIA Omniverse framework
19+
20+
# How to use this asset?
21+
22+
## Prerequisites
23+
24+
To run this tutorial, you will need:
25+
26+
* An OCI tenancy with limits set for GPU based instances, with a minimum of 2 GPUs available, either:
27+
* NVIDIA A10 for a minimum demonstration
28+
* NVIDIA L40S for optimal visualization performance
29+
* An access key to NVIDIA's NGC Catalog
30+
31+
The software setup is describe in depth [in the NVIDIA Omniverse Blueprint](https://github.com/NVIDIA-Omniverse-blueprints/digital-twins-for-fluid-simulation).
32+
33+
## Deploying the supporting GPU shape
34+
35+
1. Navigate to the "Instances" in the Cloud Console, and create a new instance:
36+
- Select "Canonical Ubuntu 24.04" as the image, and at the minimum "VM.GPU.A10.2" as the shape
37+
- Select a public subnet to place the machine in
38+
- Note the VCN and subnet used
39+
- Upload or paste your public SSH key
40+
- Increase the boot volume size to 150 Gb
41+
42+
2. After the instance has been created, navigate to the VCN that the instance uses, and create a new security list under the tab "Security". Use the following settings:
43+
<center><img src="files/subnet.png" alt="Security list settings opening ports for Omniverse kit and web applications" style="max-width:90%; height:auto;" /></center>
44+
45+
## Deploying the Digital Twin
46+
47+
1. SSH into the deployed shape and first enable the NVIDIA container toolkit repository:
48+
```console
49+
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
50+
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
51+
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
52+
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
53+
```
54+
55+
2. Update the package cache and install the required software:
56+
```console
57+
sudo apt update
58+
sudo apt install -y build-essential git-lfs docker-compose-v2
59+
sudo apt install -y nvidia-driver-570-server nvidia-container-toolkit
60+
```
61+
62+
3. Configure the container runtime, add the current user to the Docker group and reboot:
63+
```console
64+
sudo nvidia-ctk runtime configure --runtime=docker
65+
sudo usermod -aG docker ubuntu
66+
sudo reboot
67+
```
68+
69+
4. Open the ZeroMQ ports required for the web app to communicate with the
70+
inferencing backend:
71+
```console
72+
sudo iptables -I INPUT -p tcp -m multiport --dports 5555:5560 -j ACCEPT
73+
sudo iptables -I INPUT -p tcp -m multiport --sports 5555:5560 -j ACCEPT
74+
```
75+
76+
5. Log into the NVIDIA container registry using `$oauthtoken` as user and your
77+
NGC token as password. Then clone the digital twin example and build it:
78+
```console
79+
docker login nvcr.io
80+
git clone https://github.com/NVIDIA-Omniverse-blueprints/digital-twins-for-fluid-simulation.git
81+
cd digital-twins-for-fluid-simulation
82+
./build-docker.sh
83+
```
84+
85+
6. Copy the [configuration script `setup.sh`](./files/setup.sh) to the node and
86+
run it, then start the digital twin:
87+
```console
88+
bash ./setup.sh
89+
docker compose up
90+
```
91+
92+
7. You should now be able to navigate to your node's public IP, on port 5273 in
93+
a browser and evaluate the digital twin:
94+
<center><img src="files/twin_running.png" alt="A digital twin of a car in a wind tunnel, running in NVIDIA Omniverse" style="max-width:90%; height:auto;" /></center>
95+
96+
97+
# Acknowledgments
98+
99+
- **Author** - Matthias Wolf (Generative AI Ecosystem Black Belt)
100+
101+
# External links
102+
103+
* [NVIDIA Omniverse Blueprint for Digital Twins for Fluid Simulation](https://github.com/NVIDIA-Omniverse-blueprints/digital-twins-for-fluid-simulation)
104+
105+
# License
106+
107+
Copyright (c) 2025 Oracle and/or its affiliates.
108+
109+
Licensed under the Universal Permissive License (UPL), Version 1.0.
110+
111+
See [LICENSE](https://github.com/oracle-devrel/technology-engineering/blob/main/LICENSE) for more details.
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
PRIVATE_IP=$(ip route get 1 | sed 's/^.*src \([^ ]*\).*$/\1/;q')
2+
PUBLIC_IP=$(curl ipinfo.io/ip)
3+
4+
sed -e "s/127.0.0.1/${PRIVATE_IP}/g" .env_template > .env
5+
6+
cat <<EOF | git apply
7+
diff --git a/compose.yml b/compose.yml
8+
index b89118a..06bed98 100644
9+
--- a/compose.yml
10+
+++ b/compose.yml
11+
@@ -7,7 +7,9 @@ services:
12+
dockerfile: kit-app/Dockerfile
13+
network: host
14+
privileged: true
15+
- network_mode: host
16+
+ networks:
17+
+ outside:
18+
+ ipv4_address: ${PUBLIC_IP}
19+
ports:
20+
- "1024:1024/udp"
21+
- "49100:49100/tcp"
22+
@@ -52,8 +54,8 @@ services:
23+
NGC_API_KEY: "\${NGC_API_KEY}"
24+
network_mode: host
25+
ipc: host
26+
- ports:
27+
- - "8080:8080"
28+
+ # ports:
29+
+ # - "8080:8080"
30+
zmq:
31+
image: "rtdt-zmq-service:latest"
32+
restart: unless-stopped
33+
@@ -73,3 +75,11 @@ services:
34+
volumes:
35+
ov-cache:
36+
ov-local-share:
37+
+
38+
+networks:
39+
+ outside:
40+
+ driver: bridge
41+
+ ipam:
42+
+ driver: default
43+
+ config:
44+
+ - subnet: ${PUBLIC_IP%.*}.0/24
45+
EOF
191 KB
Loading

0 commit comments

Comments
 (0)