Azure HPC Recipe Document for IndicaLabs HALO AI
1 Introduction
This document briefly explains the performance of HALO AI application on a Virtual Machine deployed in Azure Cloud Platform and presents the performance results.
This recipe document covers the following topics: -
- Deploy & connect a required virtual machine on Azure platform.
- Install required NVIDIA drivers in virtual machine.
- Install Application on virtual machine.
- Performance results of current application on azure virtual machine
- Azure cost
- Summary
2 Deploy virtual machine on Azure cloud platform
2.1 Azure Cloud Architecture for Application
The below Architecture explains the virtual machine running on an Azure Platform

2.2 Azure Virtual Machine (VM)
A VM is a virtualized instance of a computer that can perform almost all the same functions as a computer, including running applications and operating systems.
An Azure VM gives you the flexibility of virtualization without having to buy and maintain the physical hardware that runs it. However, you still need to maintain the VM by performing tasks, such as configuring, patching, and installing the software that runs on it.
Things to be considered before deploying a VM,
- The names of your application resources
- The location where the resources are stored
- The size of the VM
- The operating system that the VM runs
- The configuration of the VM after it starts
- The related resources that the VM needs
There are different sizes and options available for the Azure virtual machines you can use to run your apps and workloads. Depending on the workload user has to choose the appropriate VM size. For complete list check this https://docs.microsoft.com/en-us/azure/virtual-machines/sizes/.
The HALO AI Application is tested on two Azure Virtual Machine Instances namely NC6s_v3 & NC4as_T4_v3 and the performance results are presented in this document. The two VM details are given in the table below
|
VM Name |
vCPU |
Memory (GiB) |
SSD (GiB) |
GPU |
GPU Memory (GiB) |
Max Data Disk |
|
Standard NC6s_v3 |
6 |
112 |
736 |
1 V100 |
16 |
12 |
|
Standard_NC4as_T4_v3 |
4 |
28 |
180 |
1 T4 |
16 |
8 |
- Standard NC6s_v3: This VM belongs to NCv3-series This VMs are powered by NVIDIA V100 GPUs. These GPUs can provide 1.5x the computational performance of the NCv2-series
- Standard NC4as_T4_v3: This VM Belongs to NCasT4_v3-series.These Series VMs are powered by Nvidia T4GPUs and AMD EPYC 7V12(Rome) CPUs. The “NC4as_T4_v3” VM has 1 NVIDIA T4 GPU with 16 GB of memory.
2.3 Create a Virtual Machine on Azure Platform
Sign into Azure
Sign into the Azure portal by using https://portal.azure.com/
Free Trial subscriptionsaren't eligible for limit or quota increases.
After the successful sign in or sign up, one has to upgrade the Azure subscription to Pay-As-You-Go to deploy a Virtual machine. For deployment, the user must have regional vCPU quota which can be obtained by raising a request.
The step-by-step procedure to increase the vCPU quota is given below,
https://docs.microsoft.com/en-us/azure/azure-portal/supportability/per-vm-quota-requests
The step-by-step procedure to deploy Virtual machine is given below,
- Type virtual machines in the marketplace search.
- Under Services, select Virtual machines.
- In the Virtual machines page, select Create Then Virtual machine.
- In the Basics tab, under Project details, make sure the correct subscription is selected and then choose to Create new resource group. Type Azure-PerformanceTest(user choice) for the name.

- Under Instance details, type Azure-VM (user choice) for the Virtual machine name and choose Central India for your Region. Choose Windows 10 pro, Version 20H2-Gen2 for the Image and Standard_NC24s_v3 for the Size (user choice). Leave the other defaults.

Note:
- Region must be decided based on where you are going to deploy a Virtual machine. To avoid the network latency, the region should be near to the location where the VM is to be deployed.
- Image selection is of user choice based on the application user can choose the image (Windows 10, Linux based OS and Windows Server)
- Under Administrator account, provide a username, such as Azureuser and a password. The password must be at least 12 characters long and meet the defined complexity requirements.

- Under Inbound port rules, choose Allow selected ports and then select RDP (3389) and HTTP (80) from the drop-down.

- Under the Licencing click the check box

- In Advanced tab, under the Extensions click Select an extension to install, select NVIDIA GPU Driver Extension (user choice)

Note: This Step 9, will installs the older version of Nvidia and Cuda driver hence the user can skip this step and proceed the VM deployment without extension. Follow manual installation as per chapter 2.5
- Leave the remaining defaults and then select the Review + create button at the bottom of the page.
- After validation runs, select the Create button at the bottom of the page.

- After deployment is complete, select Go to resource.

2.4 Connect to virtual machine
Create a remote desktop connection to the virtual machine. These directions tell you how to connect to your VM from a Windows computer. On a Mac, you need an RDP client such as thisRemote Desktop Clientfrom the Mac App Store.
- On the overview page for your virtual machine, select the Connect button then select RDP.

- In the Connect with RDP page, keep the default options to connect by IP address, over port 3389, and click Download RDP file.
- Open the downloaded RDP file and click Connect when prompted.
- In the Windows Security window, select More choices and then Use a different account. Type the username as localhost\username, enter the password you created for the virtual machine, and then click OK.
- You may receive a certificate warning during the sign-in process. Click Yes or Continue to create the connection.
2.5 Install NVIDIA Drivers
To take advantage of the GPU capabilities of Azure N-series VMs backed by NVIDIA GPUs, you must install NVIDIA GPU drivers.
In two ways you can install the drivers,
- TheNVIDIA GPU Driver Extensioninstalls appropriate NVIDIA CUDA or GRID drivers on an N-series VM. Install or manage the extension using the Azure portal (Ref 9)
- Install NVIDIA GPU drivers manually. (For the manual installation procedure follow https://docs.microsoft.com/en-us/azure/virtual-machines/windows/n-series-driver-setup/)
3 Install HALO AI Application on Virtual Machine
For Installing HALO AI on Azure Virtual Machine, Users can connect with Indica Labs by emailing support@indicalab.com
4 HALO AI Application on Azure Cloud Virtual Machines:
4.1 HALO AI Overview:
HALO AI is a collection of train-by-example classification and segmentation tools underpinned by advanced deep learning neural network algorithms. HALO AI classifiers can be trained to quantify tissue classes, to segment tissue classes for analysis with other HALO image analysis modules, to find rare events or cells in tissues, and to categorize cell populations into specific phenotypes.

Fig1 – Image Classification using HALO AI
5 Performance Results of HALO AI on azure virtual machine
5.1 HALO AI performance results
- HALO AI performance tests are carried out on NC6s_v3 and NC4as_T4_v3 Virtual Machines. HALO AI has shown its best performance when used with Machines having single GPU configurations. So, we have chosen the VM Instances with only 1 GPU configuration
- NC6s_v3 Virtual Machines has single Nvidia V100 GPU and NC4as_T4_v3 has single T4 GPU
- The Performance tests of Image classification is carried out on 20 different pathology data and the results were analysed.
- Below Table shows Analysis time for the Tests performed on NC4as_T4_v3 and NC6s_v3 virtual machines.
|
Image ID |
Analysis time (min) NC4as_T4_v3 |
Analysis time (min) NC6s_v3 |
|
,1 |
15 |
7 |
|
2 |
10 |
5 |
|
3 |
11 |
6 |
|
4 |
7 |
3 |
|
5 |
11 |
5 |
|
6 |
11 |
5 |
|
7 |
11 |
6 |
|
8 |
6 |
3 |
|
9 |
11 |
6 |
|
10 |
9 |
5 |
|
11 |
5 |
3 |
|
12 |
9 |
4 |
|
13 |
13 |
7 |
|
14 |
8 |
4 |
|
15 |
12 |
6 |
|
16 |
9 |
5 |
|
17 |
7 |
4 |
|
18 |
18 |
11 |
|
19 |
6 |
3 |
|
20 |
14 |
8 |
Below Chart shows the elapsed time for Image Analysis on the both the Virtual Machines

- Below table shows the relative speed-up between NCasT4 and NCv3 Virtual Machines

6 Azure Cost
For the below cost reports, only analysis time is considered for the cost calculation. The Hourly rates reported are subject to change. For the current rate please refer the link “https://azure.microsoft.com/en-in/pricing/calculator/”
|
Azure VM Size |
GPU |
Elapsed Time in Hours (for all 20 Images) |
Azure VM Hourly Cost |
Total Azure Cost |
|
NC4as_T4 |
1 T4 -GPU |
3.38 |
$0.87 |
$2.94 |
|
NC6s_v3 |
1 V100-GPU |
1.77 |
$4.51 |
$7.97 |
7 Summary
- HALO AI application is successfully deployed and tested on NC6s_v3 & NC4as_T4 series of Azure Virtual Machines. It is advised to select the Virtual Machine Instances having only one GPU configuration since HALO AI can perform best with single GPU configuration
- From the performance tests, we can see that NC6s_v3 Virtual Machine is almost 2 times faster than the NC4as_T4 Virtual Machine
2 Deploy virtual machine on Azure cloud platform
2.1 Azure Cloud Architecture for Application
2.2 Azure Virtual Machine (VM)
2.3 Create a Virtual Machine on Azure Platform
2.4 Connect to virtual machine
3 Install HALO AI Application on Virtual Machine
4 HALO AI Application on Azure Cloud Virtual Machines:
5 Performance Results of HALO AI on azure virtual machine