- Release notes
- Overview
- Setup and configuration
- Software requirements
- Hardware requirements
- Deploying the server
- Connecting to the server
- Data storage
Deploying the server
If you want to deploy your own Computer Vision server with Docker on either Microsoft Windows or Ubuntu or with Podman on Red Hat Enterprise Linux and use it with Computer Vision activities, follow the steps below.
First, WSL has to be installed on your machine.
{distribution}
is the
Linux distribution you want to use:
wsl --install -d {distribution}
wsl --install -d {distribution}
To run the Computer Vision Server on a Windows machine, you must download and install the Nvidia Windows 11 display driver on the system with a compatible GeForce or Nvidia RTX/Quadro card from the official Nvidia website.
You can install both Podman and Nvidia Container Toolkit by running the following script:
https://github.com/UiPath/Infrastructure/blob/main/ML/ml_prereq_all.sh
https://github.com/UiPath/Infrastructure/blob/main/ML/ml_prereq_all.sh
To run the Computer Vision Server, you have to run the following commands in the WSL Linux Terminal:
podman run -p 8501:5000 --hooks-dir=/usr/share/containers/oci/hooks.d/ \--security-opt=label=disable --device=nvidia.com/gpu=all controls_detection eula=accept
podman run -p 8501:5000 --hooks-dir=/usr/share/containers/oci/hooks.d/ \--security-opt=label=disable --device=nvidia.com/gpu=all controls_detection eula=accept
8501
.
Because the Linux instance running in WSL has its own virtual network interface controller, the traffic to the host IP is not directly redirected to the IP of the Linux instance. This issue can be bypassed by forwarding the traffic of the host IP to the Linux instance with the following command:
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=8501 connectaddress=$wsl_ip connectport=8501
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=8501 connectaddress=$wsl_ip connectport=8501
The WSL IP can be found with the following command:
wsl -d {distribution} hostname -I
wsl -d {distribution} hostname -I
{distribution}
is the installed Linux distribution:
wsl -d {distribution} echo "starting...";
$wsl_ips = (wsl -d {distribution} hostname -I);
$host_ip = $wsl_ips.Split(" ")[0];
netsh interface portproxy add v4tov4 listenport=8501 listenaddress=0.0.0.0 connectport=8501 connectaddress=$host_ip;
wsl -d {distribution} -u root service docker start;
wsl -d {distribution} -u root docker run -p 8501:5000 --gpus all controls_detection eula=accept;
wsl -d {distribution} echo "starting...";
$wsl_ips = (wsl -d {distribution} hostname -I);
$host_ip = $wsl_ips.Split(" ")[0];
netsh interface portproxy add v4tov4 listenport=8501 listenaddress=0.0.0.0 connectport=8501 connectaddress=$host_ip;
wsl -d {distribution} -u root service docker start;
wsl -d {distribution} -u root docker run -p 8501:5000 --gpus all controls_detection eula=accept;
This installation process requires a machine which supports nested virtualization. Currently, most Cloud VMs do not support nested virtualization for GPU machines. In conclusion, this installation process is best suited for customers which have physical Windows servers with GPUs.
All the commands listed on this page should be executed in a terminal on the GPU Machine.
Save the link provided to you by your sales representative in the current terminal session:
export CV_URL="LINK_FROM_SALES_REP"
export CV_URL="LINK_FROM_SALES_REP"
Download the export:
wget "$CV_URL" -O controls_detection.tar
wget "$CV_URL" -O controls_detection.tar
Run the following command:
podman load -i controls_detection.tar
podman load -i controls_detection.tar
Run the following command:
podman run -p 8501:5000 --hooks-dir=/usr/share/containers/oci/hooks.d/ \--security-opt=label=disable --device=nvidia.com/gpu=all controls_detection eula=accept
podman run -p 8501:5000 --hooks-dir=/usr/share/containers/oci/hooks.d/ \--security-opt=label=disable --device=nvidia.com/gpu=all controls_detection eula=accept
Upgrading the model is equivalent to installing a new version of it. This is because upgrading implies changing the model itself and also its binaries, which inevitably causes the server to stop working.
If you want to perform the upgrade on the exact same server machine, downtime is to be expected. To avoid this scenario, you can simply install the new version on a different server machine and once the installation is complete, switch traffic to it.
A standard upgrade scenario looks like this:
- Prepare for and announce downtime (if applicable).
- Install the new model in place of the old one.
- Run the server.
If your environment uses a multi-node Load Balancer setup, you can avoid downtime altogether by reinstalling each node, one at a time.
- Microsoft Windows
- Installing WSL
- Installing Nvidia drivers
- Installing Podman and Nvidia Container Toolkit
- Running the server
- Making the server available on the network
- Automatically starting the server
- Installation constraints
- Linux RHEL / Ubuntu
- Downloading the Computer Vision server image export
- Loading the image into Podman
- Starting the server
- Upgrading the Computer Vision model