Exploring Azure NGads V620 for GPU-Accelerated Graphics

Subhendu Nayak
Exploring Azure NGads V620 for GPU-Accelerated Graphics

The increasing demand for GPU-accelerated applications has reshaped the landscape of modern computing, especially for tasks like high-performance gaming, 3D rendering, and interactive media. Traditional on-premise infrastructure often falls short in terms of scalability, flexibility, and cost-efficiency, making it challenging to meet the growing needs of these resource-intensive workloads. In response to this shift, leading cloud providers have developed specialized solutions designed to optimize performance and reduce costs.

One such solution is Azure’s NG series of virtual machines (VMs), a robust platform tailored specifically for graphics-intensive applications. These GPU-powered instances are engineered to deliver the computational power required for tasks like high-quality graphics rendering, immersive gaming experiences, virtual desktops, and other visually demanding workloads. In particular, the NGads V620 series offers businesses an ideal mix of flexibility, performance, and cost-effectiveness, enabling scalable GPU resources tailored to specific project needs.

Overview of Azure GPU Instances

Azure offers a diverse set of GPU-powered virtual machines across multiple series to cater to different high-performance workloads. These instances are ideal for workloads that demand heavy parallel processing, including machine learning (ML), artificial intelligence (AI), high-performance computing (HPC), and, in our focus, GPU-accelerated graphics applications.

Azure NG Series: Key Features

  • GPU Type: The NG series is equipped with AMD Radeon PRO V620 GPUs, designed for graphics acceleration in cloud gaming, virtual desktops, and rendering.
  • CPUAMD EPYC 7763 processors (Zen 3 architecture), providing both raw computational power and high throughput for demanding tasks.
  • Memory: The NGads V620 series comes with scalable memory, from 16 GB to 176 GB.
  • Storage: Optimized for fast data retrieval with NVMe SSDs and Premium Storage, offering high throughput and low latency, which is crucial for running GPU-intensive tasks.

Azure's Key GPU Instances

Azure offers several GPU-enabled VMs across various families, each designed for specific use cases:

VM FamilyGPU TypeTypical Use CaseKey Features
NV SeriesNVIDIA Tesla M60, T4Virtual Desktops, Graphics Rendering, Video StreamingHigh memory and optimized for visual workloads, ideal for VDI and media rendering.
NC SeriesNVIDIA Tesla K80, V100, A100ML Training, AI Inference, HPCHigh-performance GPUs for data-intensive applications like training large neural networks.
ND SeriesNVIDIA Tesla P40, A100Deep Learning, AI TrainingOptimized for AI and deep learning workloads, with powerful GPUs for large-scale training jobs.
NG SeriesAMD Radeon PRO V620Gaming, Virtual Desktops, 3D RenderingSpecialized for GPU-accelerated graphics workloads, offering flexible GPU partitioning.

While other series, such as the NC and ND, are focused on AI, ML, and HPC, the NG series is specialized for graphics applications, making it particularly suited for gaming and other interactive media tasks.

Comparing Azure NG Series with AWS GPU Instances

When comparing cloud providers for GPU-accelerated graphics applications, both Azure and AWS offer powerful solutions. AWS has been a leader in cloud computing, offering P3P4G3G4G5, and G6 instances, each targeting a variety of use cases from machine learning to graphics rendering. But how does Azure’s NG series stack up against these AWS GPU instances?

Here’s a high-level comparison of Azure NG series and AWS GPU instances:

FeatureAzure NG Series (NGads V620)AWS GPU Instances
GPU TypeAMD Radeon PRO V620NVIDIA Tesla V100, A100 (P3, P4, G4, G5)
CPUAMD EPYC 7763 (Zen 3)Intel Xeon / AMD EPYC
Typical Use CasesCloud gaming, virtual desktops, 3D renderingGaming, ML inference/training, rendering
GPU Memory32 GB (full GPU) with flexible partitioning16-80 GB (depending on instance)
Key FeaturesFlexible GPU partitioning, optimized for visualsHigh throughput, optimized for AI/ML
VM Sizes8, 16, 32 vCPUs with 16-176 GB memoryvCPUs: 4-96; vRAM: 16 GB - 768 GB
Networking10-40 Gbps10-100 Gbps

AWS offers NVIDIA-based GPUs, which are well-established in high-performance computing, AI, and ML. Azure NG series, on the other hand, uses AMD Radeon PRO V620 GPUs, which provide similar performance in terms of graphical rendering and interactive media, with the added flexibility of GPU partitioning for more granular control over resources.

Why Choose Azure NG Series Over AWS GPU Instances?

  • AMD Radeon PRO V620 GPUs offer excellent graphics performance tailored for gaming and media applications.
  • Flexible GPU partitioning: Azure provides the ability to split GPUs into multiple smaller units, helping reduce costs and optimize resource usage.
  • Scalability: Azure’s NGads V620 series scales up from small to large VM sizes, accommodating varying workload demands.

Key Features of the NG Series (NGads V620)

The NGads V620 series in Azure provides a range of powerful features, making it an excellent choice for GPU-accelerated graphics applications. Let’s take a closer look at the specific components that make this series stand out.

GPUs: AMD Radeon PRO V620

The AMD Radeon PRO V620 is a high-performance GPU designed for professional workloads, including graphics rendering, gaming, and visualization. With up to 32 GB of memory, the V620 delivers excellent graphics performance for cloud gaming and media applications.

  • Key Specs:
    • GPU Memory: 32 GB (with hardware partitioning options)
    • Ray Tracing Support: Enables real-time ray tracing for immersive graphics experiences
    • Flexible Partitioning: The GPU memory can be split into smaller units, making it ideal for flexible scaling.

Note:- Ray tracing is a rendering technique in computer graphics that simulates how light interacts with objects in a scene. It traces the path of light rays from the viewer's perspective, enabling accurate rendering of reflections, refractions, shadows, and global illumination, resulting in highly realistic images.

This GPU is perfect for users who need real-time, high-quality graphics rendering at scale.

CPUs: AMD EPYC 7763

The AMD EPYC 7763 processor powers the NG series VMs, delivering substantial computational power with high clock speeds and multi-threading capabilities.

  • Key Specs:
    • Base Clock Speed: 2.45 GHz
    • Boost Clock Speed: 3.5 GHz
    • Core Architecture: Zen 3, which improves multi-core performance and overall efficiency.

The EPYC 7763 CPU offers great support for CPU-bound tasks like physics simulations, AI inference, or any other workload that requires significant processing alongside graphics.

Memory and Storage Options

The NGads V620 series offers highly configurable memory, ranging from 16 GB to 176 GB, allowing you to choose the right configuration based on your workload.

  • Memory Options:
    • NG8ads V620_v1: 8 vCPUs, 16 GB RAM
    • NG16ads V620_v1: 16 vCPUs, 32 GB RAM
    • NG32ads V620_v1: 32 vCPUs, 64 GB RAM
    • NG32adms V620_v1: 32 vCPUs, 176 GB RAM
  • Storage: Each VM comes with NVMe storage options, ensuring high-speed data access. Storage is flexible, with options for Premium Storage and Direct Disk NVMe ranging from 256 GB to 1 TB.

GPU Partitioning and Flexibility

One of the standout features of the NGads V620 series is its GPU partitioning capability. This means you can allocate 1/4 of a GPU (with 8 GB of GPU memory), 1/2 of a GPU (with 16 GB of GPU memory), or use the full GPU with 32 GB of memory. This flexibility is critical for users with varying workloads, as it allows them to fine-tune their GPU allocation, saving on cost without sacrificing performance.

Example: If you're running smaller-scale applications like low-latency cloud gaming or virtual desktops, you may only need 1/4 GPU, and Azure's partitioning allows you to do so efficiently.

Networking for High-Performance Applications

The NGads V620 series comes with high-throughput networking options ranging from 10 Gbps to 40 Gbps, allowing seamless integration for large-scale applications like cloud gaming or 3D rendering, where low-latency and high bandwidth are essential.

Use Cases for NGads V620 in GPU-Accelerated Graphics

The NGads V620 series in Azure is specifically designed for high-performance, GPU-accelerated graphics applications. With the power of AMD Radeon PRO V620 GPUs, these instances are ideal for a variety of workloads where graphics processing, interactivity, and visual fidelity are paramount.

Let’s explore the key use cases where the NGads V620 series excels:

1. Cloud Gaming

Cloud gaming is one of the most prominent use cases for GPU-powered instances. Traditional gaming relies heavily on graphics processing power, and Azure’s NGads V620 series offers a compelling solution by delivering low latencyhigh-quality graphics, and the ability to run games at scale in the cloud.

  • Key Features for Cloud Gaming:
    • Real-time Ray Tracing: The Radeon PRO V620 GPU supports ray tracing for realistic lighting and shadows, which is crucial for high-fidelity gaming experiences.
    • GPU Partitioning: With the flexibility to split a GPU into 1/4 or 1/2 GPU, developers can allocate just enough resources for lighter games, saving on cost while maintaining quality.
    • Low Latency: With Azure’s high-speed network, cloud games can be streamed to users with minimal latency, ensuring a smooth, interactive experience.
VM SizevCPUsMemoryGPU MemoryStorageIdeal for
Standard_NG8ads816 GB8 GB (1/4 GPU)256 GB SSDLight cloud gaming
Standard_NG32ads3264 GB32 GB (Full GPU)1 TB SSDHigh-quality gaming with demanding graphics

2. Virtual Desktops with GPU Acceleration

Virtual Desktop Infrastructure (VDI) is increasingly popular, especially for remote workers, CAD designers, and anyone requiring GPU-intensive applications like AutoCAD or Adobe Creative Suite. The NGads V620 series is optimized for providing GPU acceleration to virtual desktops, ensuring smooth, high-performance environments.

  • Key Features for Virtual Desktops:
    • AMD Radeon PRO V620: Offers a 32 GB GPU memory option to support demanding applications, while GPU partitioning helps serve multiple users from a single GPU.
    • Efficient Resource Allocation: Azure’s scalable VM sizes allow you to choose the right configuration based on your business needs, from entry-level to enterprise-class virtual desktops.
    • High-Throughput Networking: With 10-40 Gbps networking, these VMs support fast data transfer, which is essential for users working with large datasets in the cloud.
VM SizevCPUsMemoryGPU MemoryStorageIdeal for
Standard_NG16ads1632 GB16 GB (1/2 GPU)512 GB SSDVirtual desktops for designers
Standard_NG32ads3264 GB32 GB (Full GPU)1 TB SSDHigh-performance remote work

3. 3D Rendering and Visualizations

The NGads V620 series is a strong candidate for 3D rendering and visualization tasks. Whether for architectural visualizations, movie production, or scientific simulations, the powerful GPU acceleration in these VMs can speed up complex rendering tasks.

  • Key Features for 3D Rendering:
    • Real-time Rendering: The 32 GB GPU memory combined with flexible partitioning allows users to scale resources for smaller tasks (like preview renders) or large-scale production renders.
    • Support for GPU-Optimized Software: Azure's GPU instances are compatible with industry-standard tools like Autodesk MayaBlenderCinema 4D, and Unreal Engine for rendering complex scenes.
VM SizevCPUsMemoryGPU MemoryStorageIdeal for
Standard_NG8ads816 GB8 GB (1/4 GPU)256 GB SSDSmall-scale rendering and visual effects
Standard_NG32ads3264 GB32 GB (Full GPU)1 TB SSDLarge-scale 3D rendering and complex visualizations

4. Interactive Media and Graphics Workflows

For industries such as media production, broadcasting, and advertising, where interactive workflows are essential, the NGads V620 series provides the power needed for real-time media creation, editing, and delivery.

  • Key Features for Interactive Media:
    • High-Performance GPUs: Real-time video editing, live broadcasting, and motion graphics benefit from the AMD Radeon PRO V620 GPU, ensuring high-quality visuals without lag.
    • Scalable Storage: With up to 1 TB SSD storage options, large video files can be accessed and processed quickly.
VM SizevCPUsMemoryGPU MemoryStorageIdeal for
Standard_NG8ads816 GB8 GB (1/4 GPU)256 GB SSDVideo editing and live broadcasting
Standard_NG32ads3264 GB32 GB (Full GPU)1 TB SSDInteractive media creation

VM Sizes and Instance Configurations

The NGads V620 series offers flexible VM sizes, allowing you to tailor GPU resources to the scale of your workload. Here’s a breakdown of the available VM sizes and how to choose the right one for your application.

Breakdown of Available NG Series Sizes

VM SizevCPUsMemoryGPU MemoryStorageNetwork Bandwidth
Standard_NG8ads_v620816 GB8 GB (1/4 GPU)256 GB SSD10-20 Gbps
Standard_NG16ads_v6201632 GB16 GB (1/2 GPU)512 GB SSD20-30 Gbps
Standard_NG32ads_v6203264 GB32 GB (Full GPU)1 TB SSD30-40 Gbps
Standard_NG32adms_v62032176 GB32 GB (Full GPU)1 TB SSD40 Gbps

Selecting the Right Size for Your Workload

When choosing the right VM size for your workload, consider the following factors:

  • Workload Type: Choose a smaller instance (like NG8ads) for light workloads such as light cloud gaming or simple rendering tasks, and opt for larger configurations (like NG32ads) for high-performance gaming or large-scale 3D rendering tasks.
  • GPU Memory: If you need access to the full power of the GPU (32 GB), go with the NG32ads_v620 or NG32adms_v620 sizes.
  • Network and Storage: Consider higher network bandwidth and storage capacities for workloads like virtual desktops or media production where large files are handled frequently.

Example Use Case Scenarios

  • Scenario 1: A game developer requires a VM to test multiplayer games with real-time rendering and ray tracing. They would choose Standard_NG32ads_v620 for full GPU power, large memory, and high-speed network connectivity.
  • Scenario 2: A small media company creating video content for social media would select Standard_NG8ads_v620 for cost-effective performance, supporting interactive media creation with moderate GPU demands.

Performance Benchmarks: Azure NGads vs AWS Instances

To evaluate how Azure’s NGads V620 series compares against AWS’s GPU instances, we’ll look at performance metrics for graphics applications, specifically cloud gaming3D rendering, and virtual desktop use cases.

Key Performance Metrics Comparison

Performance MetricAzure NGads V620AWS P4AWS G5
GPU TypeAMD Radeon PRO V620NVIDIA Tesla A100NVIDIA Tesla T4
GPU Memory32 GB (Full GPU)40 GB (A100)16 GB (T4)
CPU PerformanceAMD EPYC 7763 (up to 3.5 GHz)Intel Xeon (up to 3.1 GHz)Intel Xeon (up to 3.1 GHz)
Storage ThroughputUp to 1 TB SSDUp to 8 TB NVMe SSDUp to 1 TB NVMe SSD
Network Throughput10-40 Gbps25-50 Gbps25-50 Gbps

Azure NG vs. AWS GPU Instances for Gaming and Graphics Apps

For GPU-accelerated graphics applications, the Azure NGads V620 offers competitive GPU performance with AMD Radeon PRO V620 GPUs, which are built for visual workloads. While AWS offers more GPU options, including the NVIDIA Tesla V100 and A100 (better suited for ML), Azure NG series provides excellent value for gaming and graphics applications due to its GPU partitioning and cost efficiency for smaller workloads.

Setting Up NGads V620 on Azure

Setting up GPU-accelerated virtual machines (VMs) in Azure can be a seamless experience when you know the steps. The NGads V620 series provides a variety of configurations to cater to different workloads, whether you are focused on cloud gamingvirtual desktops3D rendering, or interactive media. Below, we'll walk you through a step-by-step guide to provisioning an NGads V620 VM using both the Azure Portal and Azure CLI.

Step-by-Step Provisioning in the Azure Portal

  1. Login to the Azure Portal:
  2. Create a New Virtual Machine:
    • From the homepage, click on "Create a resource".
    • Under the Compute section, select Virtual Machine.
  3. Select the NGads V620 VM:
    • In the "Choose your image" section, choose the NGads V620 series as the VM type.
    • Azure will display the available sizes for the NGads V620 series. Select the size based on your workload requirements (e.g., Standard_NG8ads_v620 for smaller workloads or Standard_NG32ads_v620 for heavy 3D rendering and gaming).
  4. Configure Virtual Machine Settings:
    • Choose a region that supports the NGads series (e.g., East US or West Europe).
    • Select a Username and Password for VM access.
    • Under the Disks tab, configure the OS Disk type (preferably Premium SSD for performance).
  5. Networking Configuration:
    • Select a Virtual Network (VNet) or create a new one if needed.
    • For GPU-intensive workloads, ensure that the network bandwidth is optimized (select 10-40 Gbps for higher performance).
  6. Review + Create:
    • After filling out the required configurations, click Review + Create.
    • Review your settings and hit Create.

Azure will now deploy your VM, and once the provisioning is complete, you can connect to your NGads V620 VM through RDP or SSH based on your operating system choice.

Setting Up an NGads VM via Azure CLI

For those who prefer the command line, the Azure CLI provides a quick way to provision NGads V620 instances. Below is an example snippet to deploy a Standard_NG8ads_v620 VM:

bash

# Log in to Azure CLI
az login

# Set your subscription if not already set
az account set --subscription <your_subscription_id>

# Create a Resource Group
az group create --name myResourceGroup --location eastus

# Create the Virtual Machine
az vm create \
  --resource-group myResourceGroup \
  --name myNGadsVM \
  --image UbuntuLTS \
  --size Standard_NG8ads_v620 \
  --vnet-name myVNet \
  --subnet mySubnet \
  --admin-username azureuser \
  --admin-password <your_password> \
  --public-ip-address-dns-name myngadsvm \
  --no-wait

This command will provision a Standard_NG8ads_v620 VM using Ubuntu as the OS, but you can adjust the parameters as needed (such as choosing different regions, storage, etc.).

Cost Considerations: Azure NG Series vs AWS GPU Instances

When deciding between Azure NGads V620 and AWS GPU instances, cost plays a critical role. The Azure NGads V620 series provides flexible pricing options based on VM sizestorage configuration, and region.

In this section, we'll explore the key pricing factors that impact your choice, and we will compare prices across Azure regions. Additionally, we will touch upon AWS GPU instances to offer a broader perspective on cost differences for GPU-accelerated workloads.

Pricing Models and Considerations

The Azure NGads V620 pricing follows the pay-as-you-go model, meaning you’re charged based on the resources you consume (compute, storage, network bandwidth, etc.). There are also Reserved Instances (RIs) that allow you to lock in a price for 1 or 3 years and receive significant discounts.

Key Pricing Factors

  • VM Size: Larger instances (e.g., Standard_NG32ads_v620) cost more than smaller instances (e.g., Standard_NG8ads_v620).
  • Region: Azure's pricing varies across different regions, based on data center costs, power requirements, and other factors.
  • Storage: Using Premium SSD or Ultra SSD storage will be more expensive than standard disks, but it provides much higher performance, making it ideal for graphics workloads.
  • GPU Usage: The GPU pricing increases with larger VMs that provide full access to a GPU (e.g., 32GB AMD Radeon PRO V620), but partial GPU allocation allows you to reduce costs while still benefiting from GPU acceleration.

Pricing Comparison: Azure NGads V620 Series by Region

Here’s a pricing table that compares the costs of the NGads V620 series across several Azure regions for the Standard_NG8ads_v620Standard_NG16ads_v620, and Standard_NG32ads_v620 sizes. Pricing is based on pay-as-you-go models for on-demand pricing and compute costs (excluding storage and network costs).

VM SizeRegionvCPUsMemory (GB)Hourly Compute Cost (USD)GPU TypeGPU Memory (GB)
Standard_NG8ads_v620East US816$1.20AMD Radeon PRO V6208
West Europe816$1.25AMD Radeon PRO V6208
Southeast Asia816$1.35AMD Radeon PRO V6208
Standard_NG16ads_v620East US1632$2.40AMD Radeon PRO V62016
West Europe1632$2.50AMD Radeon PRO V62016
Southeast Asia1632$2.70AMD Radeon PRO V62016
Standard_NG32ads_v620East US3264$4.80AMD Radeon PRO V62032
West Europe3264$5.00AMD Radeon PRO V62032
Southeast Asia3264$5.20AMD Radeon PRO V62032

Note: These prices are indicative and subject to change. For accurate and up-to-date pricing, refer to the official Azure Pricing Calculator

Cost Comparison: Azure NG Series vs AWS GPU Instances

When comparing Azure NGads V620 instances to AWS GPU instances, especially for graphics-intensive workloads, you’ll see notable pricing differences. AWS offers multiple GPU instance types such as G5 (with NVIDIA T4 GPUs), P4 (with NVIDIA A100 GPUs), and G4ad (AMD-based instances). However, Azure's NG series provides a more tailored solution for GPU-accelerated graphics workloads with AMD GPUs and GPU partitioning, which gives more flexibility in terms of cost.

Instance TypevCPUsMemory (GB)Hourly Compute Cost (USD)GPU TypeGPU Memory (GB)
AWS G5 (g5.xlarge)416$1.47NVIDIA T416
AWS P4 (p4d.24xlarge)96768$32.77NVIDIA A10040
AWS G4ad (g4ad.xlarge)416$0.85AMD Radeon PRO V52008

While these prices provide a baseline comparison, cloud costs can vary significantly based on your specific configuration and usage patterns. For a more accurate and tailored cost estimate, try CloudOptimo's CostCalculator, which factors in instance specifications like vCPUs, memory, and region-specific pricing for both Azure and AWS. 

Key Takeaways:

  • Azure NGads V620 series instances tend to be more cost-effective for GPU-accelerated graphics applications, especially when leveraging partial GPU configurations (e.g., 1/4 GPU).
  • AWS's NVIDIA-based instances (like P4 and G5) are better suited for AI/ML workloads and generally come with a higher cost due to the NVIDIA A100 and T4 GPUs.
  • Azure's cost efficiency in regions like East US or West Europe makes it an attractive choice for small to medium graphics workloads, such as cloud gaming3D rendering, and interactive media.

Best Practices for GPU-Accelerated Graphics Applications

Once you’ve set up your NGads V620 instances and have an understanding of the pricing, it’s essential to optimize both performance and cost. Here are some best practices to ensure you get the most out of your Azure GPU instances:

Optimizing Performance and Cost

  • Leverage GPU Partitioning: For lightweight workloads like video encoding or virtual desktops, use partial GPU configurations (e.g., 1/4 or 1/2 GPU). This balances cost-efficiency while maintaining the necessary performance.
  • Select the Right VM Size: For smaller tasks like casual cloud gaming, the Standard_NG8ads_v620 provides sufficient performance. More demanding workloads, such as high-end 3D rendering or simulation, benefit from larger VMs like Standard_NG32ads_v620.
  • Utilize Autoscaling: Configure Azure Autoscaling to dynamically adjust resources during peak and off-peak periods, ensuring you pay only for the capacity you need.

Workload Scheduling and Resource Allocation

  • Schedule Tasks Efficiently: Execute resource-intensive tasks (e.g., rendering or batch processing) during off-peak hours when possible. This minimizes costs without compromising deadlines.
  • Deploy Multi-Region Workloads: Strategically distribute workloads to regions with lower costs or reduced latency for global performance optimization.
  • Set Redundancy Standards: Include redundancy for critical applications, but avoid excessive resource allocation that may lead to higher costs.

Leverage CloudOptimo’s CostCalculator to optimize Azure deployments across regions. It allows you to filter and analyze VM instances based on type, vCPUs, memory, and GPU configurations, helping you identify the most cost-effective regions for your GPU workloads. Sign up now to explore CostCalculator and simply cloud expense management across multiple Azure regions.

Cost Monitoring and Data Optimization

  • Real-Time Cost Monitoring: Utilize tools like Azure Cost Management or CloudOptimo to track and optimize resource usage. Set automated alerts to ensure budgets are not exceeded.
  • Efficient Data Storage: Choose storage options suited to your needs—Premium or Ultra SSDs for high performance and cost-effective storage tiers for data backups or archiving. Employ compression and caching to reduce repetitive read/write operations.

Enhancing User and Application Performance

  • Minimize Latency with Multi-Region Deployments: For latency-sensitive workloads such as cloud gaming or virtual experiences, deploying instances across multiple regions improves end-user performance.
  • Optimize Software Configurations: Update GPU drivers and fine-tune applications to fully leverage the AMD Radeon PRO V620 GPUs. Tools like AMD’s ROCm help enhance workload efficiency.

By adopting these best practices, organizations can harness the full potential of Azure NGads V620 instances to achieve a balance between performance and cost for GPU-accelerated applications.

Tags
AWS GPU InstancesAWS G FamilyAzure NGads V620NG SeriesGPU Accelerated GraphicsCloud Gaming3D RenderingVirtual DesktopsAMD Radeon PRO V620GPU Instances in AzureGPU PartitioningCost Optimization Azure GPU
Maximize Your Cloud Potential
Streamline your cloud infrastructure for cost-efficiency and enhanced security.
Discover how CloudOptimo optimize your AWS and Azure services.
Request a Demo