Using the IRDMA Cloud RDMA driver

Cloud RDMA enables low-latency reliable messaging capabilities by usingthe IRDMA RDMA driver. This driver supports Remote Direct MemoryAccess (RDMA) between Compute Engine instances. RDMA transfers data betweenremote machines and local memory through the network interface without usinghost CPU or intermediate host buffers.

Cloud RDMA capable instances require at least two virtual networkinterfaces (vNICs):

  • A vNIC for Cloud RDMA communication that uses the IDPF network andIRDMA RDMA driver. This vNIC can't connect to the internet. An instance canhave only one vNIC that uses Cloud RDMA.
  • A vNIC for normal network traffic. This vNIC is fully connected to theGoogle Cloud network and can connect to the internet. This vNIC uses the gVNICnetwork driver. You can add up to eight additional gVNIC network interfaces,for a total of 10 vNICs per instance.

The IRDMA driver is supported withH4D instances.

When configuring a vNIC that uses the IRDMA driver, you must specify aVPC network that was created by using theFalcon RDMA network profile.

Before you begin

Operating system support

Google recommends using theHPC VM image,which comes with Cloud RDMA drivers pre-installed.

Of the public OS images provided for Google Cloud,the IRDMA RDMA driver is supported with the following:

  • Container-Optimized OS 117 LTS or later
  • Rocky Linux 8 optimized for Google Cloud and later optimized for Google Cloudversions

Overview of using Cloud RDMA with Compute Engine instances

To create a compute instance that uses Cloud RDMA, you must have atleast one regular VPC network and oneFalcon VPC network. TheFalcon VPC network uses the Falcon RDMA network profile to enableCloud RDMA traffic between H4D instances. This network is separate fromthe regular VPC network that carries non-RDMA traffic to otherGoogle Cloud services or the internet.

The tasks to complete to create a compute instance that uses Cloud RDMAare as follows:

  1. Choose apublic OS image thatsupports Cloud RDMA, or create a custom OS image that is tagged touse IRDMA.
  2. Identify or create at least two VPC networks:

    • A regular VPC network for the traffic that goes through thegVNIC network interface
    • A Falcon VPC network for the Cloud RDMA traffic
  3. Create a compute instance using the public or custom OS image. During theinstance creation, configure at least two network interfaces: one that usesthe gVNIC network driver and one that uses the IRDMA RDMA driver.

  4. Verify that Cloud RDMA is enabled.

Create a custom OS image that supports Cloud RDMA

You can create the OS image using either theGoogle Cloud CLI orREST. For detailedinformation and best practices for creating custom OS images, seeCreate custom OS images.

gcloud

  1. Select an OS image or image family that supports the IRDMA driver andinterface. For more information, seeOperating system detailsand select theInterfaces tab.

  2. Using the OS image or image family selected in the previous step, createa custom OS image. To create the custom OS image, use thegcloud compute images create command.For example, the following command creates a custom OS image thatsupports the IRDMA driver and is based on a specific OS image.

    gcloud compute images createIMAGE_NAME \    --source-image=SOURCE_IMAGE \    --source-image-project=SOURCE_IMAGE_PROJECT \

    Replace the following:

    • IMAGE_NAME: the name of the image that youwant to create
    • SOURCE_IMAGE: a specific OS image thatsupports the IRDMA driver—for example:hpc-rocky-linux-8-v20250721

      If you want to use the latest OS image in animage family, replace the--source-image flag with the--source-image-family flag and setits value to an image family that supports the IRDMA driver. Forexample:--source-image-family=hpc-rocky-linux-8.

    • SOURCE_IMAGE_PROJECT: the name of the projectthat contains the source OS image or image family

    For more information about when to use image families, seeImage family best practices.

REST

  1. Select an OS image or image family that supports the IRDMA networkinterface. For more information, seeOperating system details.

  2. Using the OS image or image family selected in the previous step, createan OS image by using theimages.insert method.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images{  "name":"IMAGE_NAME",  "sourceImage":"SOURCE_IMAGE_URI"}

    Replace the following:

    • PROJECT_ID: the ID of the project in which to create the new image
    • IMAGE_NAME: a name for the custom image
    • SOURCE_IMAGE_URI: the URI for the specificOS image or image family that you want to use

      For example:

      • Specific OS image:"sourceImage": "projects/rocky-linux-cloud/global/images/hpc-rocky-linux-8-v20250721"
      • Image family:"sourceImage": "projects/rocky-linux-cloud/global/images/family/hpc-rocky-linux-8"

      When you specify an image family, Compute Engine creates a VMfrom the most recent, non-deprecated OS image in that family. Formore information about when to use image families, seeImage family best practices.

Create a VM with IRDMA driver support

You can create a VM using one of thesupported public OS images orusing a custom OS image you created using the steps inCreate a custom OS image that supports IRDMA.

To use Cloud RDMA with your instance, you must configure multiplenetwork interfaces (NICs) for the instance. One NIC must use the GVNIC driver(specifynic-type=GVNIC) and another NIC must use the IRDMA driver (specifynic-type=IRDMA).

Create a VM using a public OS image

To create VMs using the HPC VM image, or a public OS image that supportsCloud RDMA, follow the instructions on the following pages:

Create a VM using a custom OS image

If you created acustom OS image that supports Cloud RDMA,you can use that custom OS image to create a VM by usingtheGoogle Cloud console,Google Cloud CLI, orREST.

For instructions on how to create an instance using a custom image, seeCreate an instance from a custom image.

Verify that Cloud RDMA is enabled

After the VM is deployed, run the following performance bandwidth test to ensurethat you are running on a healthy Cloud RDMA-enabled VM instance.

ib_send_bw-aF &# start the serverib_send_bw-aF$(hostname)# start the client (can be done on the same machine)

The reported single-connection bandwidthBW average [MB/s] should reach atleast 11,000 MBps for rows higher than 4096 B. Smaller values areexpected for lower message sizes.

What's next

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-12-15 UTC.