From b758efe00247b2237962f1b85044f5dacd886622 Mon Sep 17 00:00:00 2001 From: mneru002 Date: Mon, 11 Aug 2025 14:37:14 -0700 Subject: [PATCH 01/15] Updated GNR instance --- README.md | 4 ++++ examples/gcp-linux-fastchat-simple/main.tf | 5 +++-- examples/gcp-linux-vm/index.html | 13 +++++++++++++ examples/gcp-linux-vm/main.tf | 4 ++-- examples/gcp-linux-vm/providers.tf | 3 ++- main.tf | 8 ++++---- variables.tf | 2 +- 7 files changed, 29 insertions(+), 10 deletions(-) create mode 100644 examples/gcp-linux-vm/index.html diff --git a/README.md b/README.md index d0762a4..a69c5bb 100644 --- a/README.md +++ b/README.md @@ -8,8 +8,12 @@ ## GCP VM module This module provides the functionality to ensure that you are utilizing Intel's latest generation processor in the creation of a virtual machine in GCP. + ## Performance Data +#### Intel Xeon 6 (Granite Rapids) now available on C4 VMs. These C4 instances can power even more demanding workloads, delivering the highest frequency of any Google Compute Engine VM — up to 4.2 GHz, the most vCPU and RAM of any Intel-based comparable product, larger L3 cache size, and 1.35x higher maximum memory bandwidth. + +#### As of August 2025, the expanded C4 machine series with Intel Xeon 6 is available in 19 zones, with more expansion to come. Check the latest regional availability on our regions and zones page (https://cloud.google.com/compute/docs/regions-zones). Experience the leading performance, predictability, and control that C4 VMs deliver today! To learn more about C4 and its new capabilities, visit the C4 documentation. #### Find all the information below plus even more by navigating our full library #### [INTEL CLOUD PERFROMANCE DATA LIBRARY for GCP](https://www.intel.com/content/www/us/en/developer/topic-technology/cloud/library.html?f:@stm_10381_en=%5BGoogle%20Alphabet%5D) diff --git a/examples/gcp-linux-fastchat-simple/main.tf b/examples/gcp-linux-fastchat-simple/main.tf index 2f7a8e5..1c4a4a4 100644 --- a/examples/gcp-linux-fastchat-simple/main.tf +++ b/examples/gcp-linux-fastchat-simple/main.tf @@ -10,13 +10,14 @@ variable "project" { #GCP Linux VM with Intel Cloud Optimized Recipe for FastChat module "linux_vm" { - source = "intel/gcp-vm/intel" + #source = "intel/gcp-vm/intel" + source = "../.." project = var.project boot_image_project = "ubuntu-os-cloud" boot_image_family = "ubuntu-2204-lts" name = "intel-fastchat-${random_id.rid.dec}" zone = "us-central1-a" - machine_type = "c4-standard-32" + machine_type = "c4-standard-32-lssd" allow_stopping_for_update = true tags = ["fschat-${random_id.rid.dec}"] user_data = templatefile("./cloud_init.yml", {}) diff --git a/examples/gcp-linux-vm/index.html b/examples/gcp-linux-vm/index.html new file mode 100644 index 0000000..d8bc418 --- /dev/null +++ b/examples/gcp-linux-vm/index.html @@ -0,0 +1,13 @@ +Google



 

Advanced search

© 2025 - Privacy - Terms

\ No newline at end of file diff --git a/examples/gcp-linux-vm/main.tf b/examples/gcp-linux-vm/main.tf index cf59e3a..63da780 100644 --- a/examples/gcp-linux-vm/main.tf +++ b/examples/gcp-linux-vm/main.tf @@ -6,13 +6,13 @@ # | | | | | || __/ | # |_|_| |_|\__\___|_| # -------------------------------------------------------- -# Provision GCP Xeon 4th Generation Scalable processors (code-named Sapphire Rapids) VM +# Provision GCP Xeon 6th Generation Scalable processors (code-named Granite Rapids) VM # You will need to provide value of the variable project, which is your GCP project id when you do terraform apply module "linux_vm" { source = "intel/gcp-vm/intel" project = var.project boot_image_family = "ubuntu-2204-lts" - name = "emr-vm-20" + name = "gnr-vm-20" access_config = [{ nat_ip = null public_ptr_domain_name = null diff --git a/examples/gcp-linux-vm/providers.tf b/examples/gcp-linux-vm/providers.tf index 12d1310..1bb9377 100644 --- a/examples/gcp-linux-vm/providers.tf +++ b/examples/gcp-linux-vm/providers.tf @@ -1,3 +1,4 @@ provider "google" { zone = "us-central1-a" -} \ No newline at end of file +} + diff --git a/main.tf b/main.tf index af1882f..b44b0c0 100644 --- a/main.tf +++ b/main.tf @@ -2,8 +2,8 @@ # In this block the code determines the minimum CPU platform based on the machine type that the use has selected. # We always recommend our customers to use the latest generation of Intel CPU platforms that are publicly available . # -# As of October 2024, C4 and N4 are powered by the 5th generation Intel Xeon Scalable processor (code-named Emerald Rapids) and will offer better performance over the C3 and N2 instances. -# +# As of October 2024, N4 are powered by the 5th generation Intel Xeon Scalable processor (code-named Emerald Rapids) and will offer better performance over the C3 and N2 instances. +# As of August 2025, C4 are powered by the 6th generation Intel Xeon Scalable processor (code-named Granite Rapids). # General Purpose N2 instances can be on either Ice Lake or Cascade Lake for the same price. For better price and performance, we are recommendaing to use Intel Ice Lake for N2 instances. For C3 instances, the # minimum CPU platform is Intel Sapphire Rapids. # @@ -19,8 +19,8 @@ locals { "c3": "Intel Sapphire Rapids", "m3": "Intel Ice Lake", "c2": "Intel Cascade Lake" - "n4": null - "c4": null + "n4": "Intel Emerald Rapids" + "c4": "Intel Granite Rapids" "m1": null "m2": null "e2": null diff --git a/variables.tf b/variables.tf index 679c23b..4d33d01 100644 --- a/variables.tf +++ b/variables.tf @@ -18,7 +18,7 @@ variable "machine_type" { type = string description = "The machine type to create" - default = "c4-standard-4" + default = "c4-standard-4-lssd" } ######################## From 458c7b3a3e046f6ed1085f2dd501b0ce942fd9d1 Mon Sep 17 00:00:00 2001 From: mneru002 Date: Mon, 18 Aug 2025 18:10:41 -0700 Subject: [PATCH 02/15] Updated fastchat example --- examples/gcp-linux-fastchat-simple/README.md | 4 ++-- examples/gcp-linux-fastchat-simple/main.tf | 4 +--- examples/gcp-linux-vm/README.md | 2 +- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/examples/gcp-linux-fastchat-simple/README.md b/examples/gcp-linux-fastchat-simple/README.md index 48760ca..851db26 100644 --- a/examples/gcp-linux-fastchat-simple/README.md +++ b/examples/gcp-linux-fastchat-simple/README.md @@ -4,9 +4,9 @@ # Intel Optimized Cloud Modules for Terraform -© Copyright 2024, Intel Corporation +© Copyright 2025, Intel Corporation -## GCP C4 5th Gen Xeon(code named Emerald Rapids) & Intel® Optimized Cloud Recipe for FastChat +## GCP C4 6th Gen Xeon(code named Granite Rapids) & Intel® Optimized Cloud Recipe for FastChat This demo will showcase Large Language Model(LLM) CPU inference using 5th Gen Xeon Scalable Processors on GCP. diff --git a/examples/gcp-linux-fastchat-simple/main.tf b/examples/gcp-linux-fastchat-simple/main.tf index 1c4a4a4..c1656f8 100644 --- a/examples/gcp-linux-fastchat-simple/main.tf +++ b/examples/gcp-linux-fastchat-simple/main.tf @@ -7,11 +7,9 @@ variable "project" { description = "GCP Project ID" } - #GCP Linux VM with Intel Cloud Optimized Recipe for FastChat module "linux_vm" { - #source = "intel/gcp-vm/intel" - source = "../.." + source = "intel/gcp-vm/intel" project = var.project boot_image_project = "ubuntu-os-cloud" boot_image_family = "ubuntu-2204-lts" diff --git a/examples/gcp-linux-vm/README.md b/examples/gcp-linux-vm/README.md index 6fea424..aa9f144 100644 --- a/examples/gcp-linux-vm/README.md +++ b/examples/gcp-linux-vm/README.md @@ -4,7 +4,7 @@ # Intel Optimized Cloud Modules for Terraform -© Copyright 2024, Intel Corporation +© Copyright 2025, Intel Corporation ## Intel GCP VM on default network From 3162a10d889d3c0f62d06050222dcbfe24dde40a Mon Sep 17 00:00:00 2001 From: mneru002 Date: Mon, 18 Aug 2025 18:21:21 -0700 Subject: [PATCH 03/15] Updated stable-diffusion --- examples/gcp-linux-stable-diffusion/README.md | 4 ++-- examples/gcp-linux-stable-diffusion/main.tf | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/examples/gcp-linux-stable-diffusion/README.md b/examples/gcp-linux-stable-diffusion/README.md index 2ca5be8..19d822b 100644 --- a/examples/gcp-linux-stable-diffusion/README.md +++ b/examples/gcp-linux-stable-diffusion/README.md @@ -4,9 +4,9 @@ # Intel Optimized Cloud Modules for Terraform -© Copyright 2024, Intel Corporation +© Copyright 2025, Intel Corporation -## GCP C3 4th Gen Xeon(code named Sapphire Rapids) & Intel® Optimized Cloud Recipe for Stable Diffusion +## GCP C4 6th Gen Xeon(code named Granite Rapids) & Intel® Optimized Cloud Recipe for Stable Diffusion This demo will showcase Stable Diffusion CPU inferencing using 5th Gen Xeon Scalable Processors on GCP. diff --git a/examples/gcp-linux-stable-diffusion/main.tf b/examples/gcp-linux-stable-diffusion/main.tf index 4f2dd52..369acc9 100644 --- a/examples/gcp-linux-stable-diffusion/main.tf +++ b/examples/gcp-linux-stable-diffusion/main.tf @@ -7,7 +7,6 @@ variable "project" { description = "GCP Project ID" } - #GCP Linux VM with Intel Cloud Optimized Recipe for FastChat module "linux_vm" { source = "intel/gcp-vm/intel" @@ -16,7 +15,7 @@ module "linux_vm" { boot_image_family = "ubuntu-2204-lts" name = "intel-diffusion-${random_id.rid.dec}" zone = "us-central1-a" - machine_type = "c4-standard-32" + machine_type = "c4-standard-32-lssd" allow_stopping_for_update = true tags = ["diffusion-${random_id.rid.dec}"] user_data = templatefile("./cloud_init.yml", {}) From e3a0af7bc26f2e023a695890a1b16d6faad800e7 Mon Sep 17 00:00:00 2001 From: mneru002 Date: Mon, 18 Aug 2025 18:48:21 -0700 Subject: [PATCH 04/15] Updated ico-by-densify --- examples/gcp-linux-fastchat-simple/README.md | 2 +- examples/gcp-linux-stable-diffusion/README.md | 2 +- examples/gcp-linux-tdx-vm/README.md | 4 ++-- examples/gcp-linux-tdx-vm/main.tf | 5 +++-- examples/gcp-linux-tdx-vm/providers.tf | 10 +++++++++- examples/gcp-linux-vm-ico-by-densify/README.md | 2 +- .../densify_recommendations.auto.tfvars | 2 +- examples/gcp-linux-vm-ico-by-densify/providers.tf | 2 +- examples/gcp-linux-vm-ico-by-densify/variables.tf | 4 ++-- 9 files changed, 21 insertions(+), 12 deletions(-) diff --git a/examples/gcp-linux-fastchat-simple/README.md b/examples/gcp-linux-fastchat-simple/README.md index 851db26..9840ad4 100644 --- a/examples/gcp-linux-fastchat-simple/README.md +++ b/examples/gcp-linux-fastchat-simple/README.md @@ -8,7 +8,7 @@ ## GCP C4 6th Gen Xeon(code named Granite Rapids) & Intel® Optimized Cloud Recipe for FastChat -This demo will showcase Large Language Model(LLM) CPU inference using 5th Gen Xeon Scalable Processors on GCP. +This demo will showcase Large Language Model(LLM) CPU inference using 6th Gen Xeon Scalable Processors on GCP. ## Usage diff --git a/examples/gcp-linux-stable-diffusion/README.md b/examples/gcp-linux-stable-diffusion/README.md index 19d822b..c48131a 100644 --- a/examples/gcp-linux-stable-diffusion/README.md +++ b/examples/gcp-linux-stable-diffusion/README.md @@ -8,7 +8,7 @@ ## GCP C4 6th Gen Xeon(code named Granite Rapids) & Intel® Optimized Cloud Recipe for Stable Diffusion -This demo will showcase Stable Diffusion CPU inferencing using 5th Gen Xeon Scalable Processors on GCP. +This demo will showcase Stable Diffusion CPU inferencing using 6th Gen Xeon Scalable Processors on GCP. ## Usage diff --git a/examples/gcp-linux-tdx-vm/README.md b/examples/gcp-linux-tdx-vm/README.md index 9173c71..6c35390 100644 --- a/examples/gcp-linux-tdx-vm/README.md +++ b/examples/gcp-linux-tdx-vm/README.md @@ -4,11 +4,11 @@ # Intel Cloud Optimization Modules for Terraform -© Copyright 2023, Intel Corporation +© Copyright 2025, Intel Corporation ## Intel GCP VM on default network -This module creates a Intel Confiddential Compute Linux VM on the default network with Intel Xeon 5th Generation Scalable processors (code-named Emerald Rapids) VM with Confidential Computing and Intel Trust Domain Extension (Intel TDX) technology. +This module creates a Intel Confiddential Compute Linux VM on the default network with Intel Xeon 6th Generation Scalable processors (code-named Granite Rapids) VM with Confidential Computing and Intel Trust Domain Extension (Intel TDX) technology. Update the project with a your project id in GCP. It is located on the variables.tf file under this example folder for "GCP-Linux-VM" diff --git a/examples/gcp-linux-tdx-vm/main.tf b/examples/gcp-linux-tdx-vm/main.tf index d790d3e..6b9b011 100644 --- a/examples/gcp-linux-tdx-vm/main.tf +++ b/examples/gcp-linux-tdx-vm/main.tf @@ -9,7 +9,8 @@ # Provision GCP virtual machine on Intel Xeon 4th Generation Scalable processors (code-named Sapphire Rapids) VM which supports Confidential Computing with Intel Trust Domain Extension (Intel TDX) technology # You will need to provide value of the variable project, which is your GCP project id when you do terraform apply module "linux_vm" { - source = "intel/gcp-vm/intel" + #source = "intel/gcp-vm/intel" + source = "../.." project = var.project name = "intel-tdx-linux01" @@ -17,7 +18,7 @@ module "linux_vm" { enable_confidential_compute = var.enable_confidential_compute confidential_instance_type = var.confidential_instance_type on_host_maintenance = "TERMINATE" - machine_type = "c4-standard-4" + machine_type = "c4-standard-4-lssd" access_config = [{ diff --git a/examples/gcp-linux-tdx-vm/providers.tf b/examples/gcp-linux-tdx-vm/providers.tf index 12d1310..2ce5e32 100644 --- a/examples/gcp-linux-tdx-vm/providers.tf +++ b/examples/gcp-linux-tdx-vm/providers.tf @@ -1,3 +1,11 @@ +# provider "google" { +# zone = "us-central1-a" +# } + + provider "google" { - zone = "us-central1-a" + credentials = file("/home/mihikanerurkar/code/intel-csa-resource-gcp.json") + project = "intel-csa-resource-gcp" + region = "us-central1" + zone = "us-central1-b" } \ No newline at end of file diff --git a/examples/gcp-linux-vm-ico-by-densify/README.md b/examples/gcp-linux-vm-ico-by-densify/README.md index d5b800a..0c9b138 100644 --- a/examples/gcp-linux-vm-ico-by-densify/README.md +++ b/examples/gcp-linux-vm-ico-by-densify/README.md @@ -4,7 +4,7 @@ # Intel Optimized Cloud Modules for Terraform -© Copyright 2024, Intel Corporation +© Copyright 2025, Intel Corporation ## Intel GCP Linux VM on default network using Intel Cloud Optimzier(ICO) by Densify recommendations diff --git a/examples/gcp-linux-vm-ico-by-densify/densify_recommendations.auto.tfvars b/examples/gcp-linux-vm-ico-by-densify/densify_recommendations.auto.tfvars index 144738e..8a2704d 100644 --- a/examples/gcp-linux-vm-ico-by-densify/densify_recommendations.auto.tfvars +++ b/examples/gcp-linux-vm-ico-by-densify/densify_recommendations.auto.tfvars @@ -1,7 +1,7 @@ densify_recommendations = { "ico-test" = { currentType = "n1-standard-2" - recommendedType = "c4-standard-4" + recommendedType = "c4-standard-32-lssd" approvalType = "all" predictedUptime = "95.0" recommendationType = "Modernize" diff --git a/examples/gcp-linux-vm-ico-by-densify/providers.tf b/examples/gcp-linux-vm-ico-by-densify/providers.tf index 12d1310..586c64a 100644 --- a/examples/gcp-linux-vm-ico-by-densify/providers.tf +++ b/examples/gcp-linux-vm-ico-by-densify/providers.tf @@ -1,3 +1,3 @@ provider "google" { zone = "us-central1-a" -} \ No newline at end of file +} diff --git a/examples/gcp-linux-vm-ico-by-densify/variables.tf b/examples/gcp-linux-vm-ico-by-densify/variables.tf index 813dc12..c15cd72 100644 --- a/examples/gcp-linux-vm-ico-by-densify/variables.tf +++ b/examples/gcp-linux-vm-ico-by-densify/variables.tf @@ -15,7 +15,7 @@ variable "densify_recommendations" { default = { ico-test = { currentType = "n1-standard-2" - recommendedType = "c4-standard-4" + recommendedType = "c4-standard-32-lssd" approvalType = "all" savingsEstimate = "26.6" predictedUptime = "94.32" @@ -30,7 +30,7 @@ variable "densify_fallback"{ type = map(string) default = { currentType = "n1-standard-2" - recommendedType = "c4-standard-4" + recommendedType = "c4-standard-32-lssd" approvalType = "all" savingsEstimate = "0" predictedUptime = "0" From ee6d46044a983adea670e3a4d5c4e846c113ad59 Mon Sep 17 00:00:00 2001 From: mneru002 Date: Mon, 18 Aug 2025 18:59:46 -0700 Subject: [PATCH 05/15] Updated aikit --- examples/gcp-linux-vm-spot/main.tf | 3 ++- examples/gcp-linux-vm-spot/providers.tf | 9 ++++++++- examples/gcp-linux-with-aikit/main.tf | 1 + 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/examples/gcp-linux-vm-spot/main.tf b/examples/gcp-linux-vm-spot/main.tf index 152884b..dca07da 100644 --- a/examples/gcp-linux-vm-spot/main.tf +++ b/examples/gcp-linux-vm-spot/main.tf @@ -9,7 +9,8 @@ # Provision GCP Xeon 5th Generation Scalable processors (code-named Emerald Rapids) VM # You will need to provide value of the variable project, which is your GCP project id when you do terraform apply module "spot_vm" { - source = "intel/gcp-vm/intel" + #source = "intel/gcp-vm/intel" + source = "../.." project = var.project boot_image_family = "ubuntu-2204-lts" name = "this-is-a-spot-vm" diff --git a/examples/gcp-linux-vm-spot/providers.tf b/examples/gcp-linux-vm-spot/providers.tf index 12d1310..fde88d5 100644 --- a/examples/gcp-linux-vm-spot/providers.tf +++ b/examples/gcp-linux-vm-spot/providers.tf @@ -1,3 +1,10 @@ +# provider "google" { +# zone = "us-central1-a" +# } + provider "google" { - zone = "us-central1-a" + credentials = file("/home/mihikanerurkar/code/intel-csa-resource-gcp.json") + project = "intel-csa-resource-gcp" + region = "us-central1" + zone = "us-central1-b" } \ No newline at end of file diff --git a/examples/gcp-linux-with-aikit/main.tf b/examples/gcp-linux-with-aikit/main.tf index 5aa980a..3444b2f 100644 --- a/examples/gcp-linux-with-aikit/main.tf +++ b/examples/gcp-linux-with-aikit/main.tf @@ -8,6 +8,7 @@ data "template_file" "user_data" { template = file("./cloud_init.yml") } + module "linux_vm" { source = "intel/gcp-vm/intel" project = var.project From a162460327bbd871d7ac3e06166ef068aa288df6 Mon Sep 17 00:00:00 2001 From: mneru002 Date: Mon, 18 Aug 2025 19:37:38 -0700 Subject: [PATCH 06/15] Updated rhel-vm --- examples/gcp-rhel-vm/README.md | 4 ++-- examples/gcp-rhel-vm/providers.tf | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/gcp-rhel-vm/README.md b/examples/gcp-rhel-vm/README.md index 33c8711..4ac1d66 100644 --- a/examples/gcp-rhel-vm/README.md +++ b/examples/gcp-rhel-vm/README.md @@ -4,11 +4,11 @@ # Intel Optimized Cloud Modules for Terraform -© Copyright 2024, Intel Corporation +© Copyright 2025, Intel Corporation ## Intel Red Hat Enterprise Linux GCP VM Example -This module creates a Red Hat Enterprise Linux (RHEL) VM. The virtual machine is created on an Intel 5th Gen Xeon Scalable Processors (Emerald Rapids) on c4-standard-4 by default VM. +This module creates a Red Hat Enterprise Linux (RHEL) VM. The virtual machine is created on an Intel 6th Gen Xeon Scalable Processors (Granite Rapids) on c4-standard-4-lssd by default VM. Update the project with a your project id in GCP. It is located on the variables.tf file under this example folder for "GCP-RHEL-VM". diff --git a/examples/gcp-rhel-vm/providers.tf b/examples/gcp-rhel-vm/providers.tf index 12d1310..586c64a 100644 --- a/examples/gcp-rhel-vm/providers.tf +++ b/examples/gcp-rhel-vm/providers.tf @@ -1,3 +1,3 @@ provider "google" { zone = "us-central1-a" -} \ No newline at end of file +} From a6e8e9fcda411fe769fec09161d23fb1088dcd72 Mon Sep 17 00:00:00 2001 From: mneru002 Date: Mon, 18 Aug 2025 19:44:18 -0700 Subject: [PATCH 07/15] Updated windows-vm --- examples/gcp-windows-vm/README.md | 2 +- examples/gcp-windows-vm/providers.tf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/gcp-windows-vm/README.md b/examples/gcp-windows-vm/README.md index 1625841..3f2689a 100644 --- a/examples/gcp-windows-vm/README.md +++ b/examples/gcp-windows-vm/README.md @@ -4,7 +4,7 @@ ## Intel Optimized Cloud Modules for Terraform -© Copyright 2024, Intel Corporation +© Copyright 2025, Intel Corporation ## Intel GCP VM on default network diff --git a/examples/gcp-windows-vm/providers.tf b/examples/gcp-windows-vm/providers.tf index 12d1310..586c64a 100644 --- a/examples/gcp-windows-vm/providers.tf +++ b/examples/gcp-windows-vm/providers.tf @@ -1,3 +1,3 @@ provider "google" { zone = "us-central1-a" -} \ No newline at end of file +} From 82cf3f5524b2625120f530ebce69120f0f73979a Mon Sep 17 00:00:00 2001 From: mneru002 Date: Mon, 18 Aug 2025 22:07:17 -0700 Subject: [PATCH 08/15] Updated windows-ico-by-densify --- examples/gcp-windows-vm-ico-by-densify/README.md | 6 +++--- .../densify_recommendations.auto.tfvars | 2 +- examples/gcp-windows-vm-ico-by-densify/variables.tf | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/gcp-windows-vm-ico-by-densify/README.md b/examples/gcp-windows-vm-ico-by-densify/README.md index d588982..1170d16 100644 --- a/examples/gcp-windows-vm-ico-by-densify/README.md +++ b/examples/gcp-windows-vm-ico-by-densify/README.md @@ -4,7 +4,7 @@ ## Intel Optimized Cloud Modules for Terraform -© Copyright 2024, Intel Corporation +© Copyright 2025, Intel Corporation ## Intel GCP Windows VM on default network using Intel Cloud Optimzier(ICO) by Densify recommendations @@ -46,7 +46,7 @@ variable "densify_recommendations" { default = { ico-test = { currentType = "n1-standard-2" - recommendedType = "c4-standard-4" + recommendedType = "c4-standard-4-lssd" approvalType = "all" savingsEstimate = "26.6" predictedUptime = "94.32" @@ -61,7 +61,7 @@ variable "densify_fallback"{ type = map(string) default = { currentType = "n1-standard-2" - recommendedType = "c4-standard-4" + recommendedType = "c4-standard-4-lssd" approvalType = "all" savingsEstimate = "0" predictedUptime = "0" diff --git a/examples/gcp-windows-vm-ico-by-densify/densify_recommendations.auto.tfvars b/examples/gcp-windows-vm-ico-by-densify/densify_recommendations.auto.tfvars index 144738e..0c9a62f 100644 --- a/examples/gcp-windows-vm-ico-by-densify/densify_recommendations.auto.tfvars +++ b/examples/gcp-windows-vm-ico-by-densify/densify_recommendations.auto.tfvars @@ -1,7 +1,7 @@ densify_recommendations = { "ico-test" = { currentType = "n1-standard-2" - recommendedType = "c4-standard-4" + recommendedType = "c4-standard-4-lssd" approvalType = "all" predictedUptime = "95.0" recommendationType = "Modernize" diff --git a/examples/gcp-windows-vm-ico-by-densify/variables.tf b/examples/gcp-windows-vm-ico-by-densify/variables.tf index 81260d6..9a08532 100644 --- a/examples/gcp-windows-vm-ico-by-densify/variables.tf +++ b/examples/gcp-windows-vm-ico-by-densify/variables.tf @@ -15,7 +15,7 @@ variable "densify_recommendations" { default = { ico-test = { currentType = "n1-standard-2" - recommendedType = "c4-standard-4" + recommendedType = "c4-standard-4-lssd" approvalType = "all" savingsEstimate = "26.6" predictedUptime = "94.32" @@ -30,7 +30,7 @@ variable "densify_fallback"{ type = map(string) default = { currentType = "n1-standard-2" - recommendedType = "c4-standard-4" + recommendedType = "c4-standard-4-lssd" approvalType = "all" savingsEstimate = "0" predictedUptime = "0" From 4c0256480eefeb3585f7a9d8192b01ba9aa2d6db Mon Sep 17 00:00:00 2001 From: mneru002 Date: Mon, 18 Aug 2025 22:18:04 -0700 Subject: [PATCH 09/15] Update opea-chatqna --- examples/gen-ai-xeon-opea-chatqna/README.md | 6 +++--- examples/gen-ai-xeon-opea-chatqna/main.tf | 12 ++++++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/examples/gen-ai-xeon-opea-chatqna/README.md b/examples/gen-ai-xeon-opea-chatqna/README.md index acfb368..2f3d136 100644 --- a/examples/gen-ai-xeon-opea-chatqna/README.md +++ b/examples/gen-ai-xeon-opea-chatqna/README.md @@ -4,11 +4,11 @@ # Intel® Optimized Cloud Modules for Terraform -© Copyright 2024, Intel Corporation +© Copyright 2025, Intel Corporation -## GCP C4 Instance with 5th Generation Intel® Xeon® Scalable Processor (Emerald Rapids) & Open Platform for Enterprise AI (OPEA) ChatQnA Example +## GCP C4 Instance with 6th Generation Intel® Xeon® Scalable Processor (Granite Rapids) & Open Platform for Enterprise AI (OPEA) ChatQnA Example -This demo will showcase Retrieval Augmented Generation (RAG) CPU inference using 5th Gen Xeon Scalable Processors on GCP using the OPEA ChatQnA Example. For more information about OPEA, go [here](https://opea.dev/). For more information on this specific example, go [here](https://github.com/opea-project/GenAIExamples/tree/main/ChatQnA). +This demo will showcase Retrieval Augmented Generation (RAG) CPU inference using 6th Gen Xeon Scalable Processors on GCP using the OPEA ChatQnA Example. For more information about OPEA, go [here](https://opea.dev/). For more information on this specific example, go [here](https://github.com/opea-project/GenAIExamples/tree/main/ChatQnA). ## Usage diff --git a/examples/gen-ai-xeon-opea-chatqna/main.tf b/examples/gen-ai-xeon-opea-chatqna/main.tf index d0c2f10..fe840b0 100644 --- a/examples/gen-ai-xeon-opea-chatqna/main.tf +++ b/examples/gen-ai-xeon-opea-chatqna/main.tf @@ -3,15 +3,23 @@ resource "random_id" "rid" { byte_length = 3 } +provider "google" { + credentials = file("/home/mihikanerurkar/code/intel-csa-resource-gcp.json") + project = "intel-csa-resource-gcp" + region = "us-central1" + zone = "us-central1-b" +} + #GCP Linux VM with Intel OPEA ChatQnA module "linux_vm" { - source = "intel/gcp-vm/intel" + #source = "intel/gcp-vm/intel" + source = "../.." project = var.project boot_image_project = "ubuntu-os-cloud" boot_image_family = "ubuntu-2204-lts" name = "ai-opea-chatqna-${random_id.rid.dec}" zone = "us-east4-a" - machine_type = "c4-highcpu-48" + machine_type = "c4-standard-4-lssd" allow_stopping_for_update = true tags = ["ai-opea-chatqna-${random_id.rid.dec}"] user_data = templatefile("./cloud_init.yml", { HUGGINGFACEHUB_API_TOKEN = var.huggingface_token }) From 5b9400876f77a246342dd0020567b701090c5a91 Mon Sep 17 00:00:00 2001 From: mneru002 Date: Mon, 18 Aug 2025 22:29:52 -0700 Subject: [PATCH 10/15] Updated codegen --- examples/gen-ai-xeon-opea-codegen/README.md | 6 +++--- examples/gen-ai-xeon-opea-codegen/main.tf | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/gen-ai-xeon-opea-codegen/README.md b/examples/gen-ai-xeon-opea-codegen/README.md index b23eb7f..a6cbad5 100644 --- a/examples/gen-ai-xeon-opea-codegen/README.md +++ b/examples/gen-ai-xeon-opea-codegen/README.md @@ -4,11 +4,11 @@ # Intel® Optimized Cloud Modules for Terraform -© Copyright 2024, Intel Corporation +© Copyright 2025, Intel Corporation -## GCP C4 Instance with 5th Generation Intel® Xeon® Scalable Processor (Emerald Rapids) & Open Platform for Enterprise AI (OPEA) Code Generation Example +## GCP C4 Instance with 6th Generation Intel® Xeon® Scalable Processor (Granite Rapids) & Open Platform for Enterprise AI (OPEA) Code Generation Example -This demo will showcase Code Generation CPU inference using 5th Gen Xeon Scalable Processors on GCP using the OPEA CodeGen Example. For more information about OPEA, go [here](https://opea.dev/). For more information on this specific example, go [here](https://github.com/opea-project/GenAIExamples/tree/main/CodeGen) +This demo will showcase Code Generation CPU inference using 6th Gen Xeon Scalable Processors on GCP using the OPEA CodeGen Example. For more information about OPEA, go [here](https://opea.dev/). For more information on this specific example, go [here](https://github.com/opea-project/GenAIExamples/tree/main/CodeGen) ## Usage diff --git a/examples/gen-ai-xeon-opea-codegen/main.tf b/examples/gen-ai-xeon-opea-codegen/main.tf index 40d3c5a..2315c69 100644 --- a/examples/gen-ai-xeon-opea-codegen/main.tf +++ b/examples/gen-ai-xeon-opea-codegen/main.tf @@ -11,7 +11,7 @@ module "linux_vm" { boot_image_family = "ubuntu-2204-lts" name = "ai-opea-codegen-${random_id.rid.dec}" zone = "us-east4-a" - machine_type = "c4-highcpu-48" + machine_type = "c4-standard-4-lssd" allow_stopping_for_update = true tags = ["ai-opea-codegen-${random_id.rid.dec}"] user_data = templatefile("./cloud_init.yml", { HUGGINGFACEHUB_API_TOKEN = var.huggingface_token }) @@ -22,7 +22,7 @@ module "linux_vm" { }, ] } -Required firewall rules +#Required firewall rules resource "google_compute_firewall" "rules" { project = var.project name = "ai-opea-codegen-${random_id.rid.dec}" From 41269f9470ecb34e9e84e6df0af6d92edcb7bd07 Mon Sep 17 00:00:00 2001 From: mneru002 Date: Mon, 18 Aug 2025 22:37:50 -0700 Subject: [PATCH 11/15] Updated vm-spot --- NOTICE.md | 2 +- README.md | 2 +- examples/gcp-linux-vm-spot/README.md | 2 +- examples/gcp-linux-vm-spot/main.tf | 3 +-- examples/gcp-linux-vm-spot/providers.tf | 11 ++--------- policies.md | 2 +- 6 files changed, 7 insertions(+), 15 deletions(-) diff --git a/NOTICE.md b/NOTICE.md index 42b02e4..4222679 100644 --- a/NOTICE.md +++ b/NOTICE.md @@ -1,4 +1,4 @@ -© Copyright 2022, Intel Corporation +© Copyright 2025, Intel Corporation Credit: "This project incorporates code from terraform-aws-modules https://github.com/terraform-google-modules/terraform-google-vm under the Apache-2.0 license.” diff --git a/README.md b/README.md index a69c5bb..b8d311f 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ ## Intel® Optimized Cloud Modules for Terraform -© Copyright 2024, Intel Corporation +© Copyright 2025, Intel Corporation ## GCP VM module This module provides the functionality to ensure that you are utilizing Intel's latest generation processor in the creation of a virtual machine in GCP. diff --git a/examples/gcp-linux-vm-spot/README.md b/examples/gcp-linux-vm-spot/README.md index c6f7c7c..96c072b 100644 --- a/examples/gcp-linux-vm-spot/README.md +++ b/examples/gcp-linux-vm-spot/README.md @@ -4,7 +4,7 @@ # Intel Optimized Cloud Modules for Terraform -© Copyright 2024, Intel Corporation +© Copyright 2025, Intel Corporation ## Intel GCP Spot VM creation on the default network diff --git a/examples/gcp-linux-vm-spot/main.tf b/examples/gcp-linux-vm-spot/main.tf index dca07da..152884b 100644 --- a/examples/gcp-linux-vm-spot/main.tf +++ b/examples/gcp-linux-vm-spot/main.tf @@ -9,8 +9,7 @@ # Provision GCP Xeon 5th Generation Scalable processors (code-named Emerald Rapids) VM # You will need to provide value of the variable project, which is your GCP project id when you do terraform apply module "spot_vm" { - #source = "intel/gcp-vm/intel" - source = "../.." + source = "intel/gcp-vm/intel" project = var.project boot_image_family = "ubuntu-2204-lts" name = "this-is-a-spot-vm" diff --git a/examples/gcp-linux-vm-spot/providers.tf b/examples/gcp-linux-vm-spot/providers.tf index fde88d5..586c64a 100644 --- a/examples/gcp-linux-vm-spot/providers.tf +++ b/examples/gcp-linux-vm-spot/providers.tf @@ -1,10 +1,3 @@ -# provider "google" { -# zone = "us-central1-a" -# } - provider "google" { - credentials = file("/home/mihikanerurkar/code/intel-csa-resource-gcp.json") - project = "intel-csa-resource-gcp" - region = "us-central1" - zone = "us-central1-b" -} \ No newline at end of file + zone = "us-central1-a" +} diff --git a/policies.md b/policies.md index 19ee707..fa64c2c 100644 --- a/policies.md +++ b/policies.md @@ -4,7 +4,7 @@ # Intel® Optimized Cloud Modules for Terraform -© Copyright 2024, Intel Corporation +© Copyright 2025, Intel Corporation ## HashiCorp Sentinel Policies From fdef2e95fe23b6356e1ae59c09b1ebbbf63e73c6 Mon Sep 17 00:00:00 2001 From: mneru002 Date: Tue, 19 Aug 2025 09:50:33 -0700 Subject: [PATCH 12/15] Updated tdx-vm --- README.md | 3 +++ examples/gcp-linux-tdx-vm/main.tf | 3 ++- examples/gcp-linux-vm-ico-by-densify/main.tf | 2 +- examples/gcp-linux-vm-spot/main.tf | 2 +- image.png | Bin 0 -> 55731 bytes main.tf | 12 ++++++------ variables.tf | 2 +- 7 files changed, 14 insertions(+), 10 deletions(-) create mode 100644 image.png diff --git a/README.md b/README.md index b8d311f..2f53e3f 100644 --- a/README.md +++ b/README.md @@ -18,11 +18,14 @@ This module provides the functionality to ensure that you are utilizing Intel's #### Find all the information below plus even more by navigating our full library #### [INTEL CLOUD PERFROMANCE DATA LIBRARY for GCP](https://www.intel.com/content/www/us/en/developer/topic-technology/cloud/library.html?f:@stm_10381_en=%5BGoogle%20Alphabet%5D) +![alt text](image.png) + #
#### [Maximize performance and optimize spend with Compute Engine’s latest VMs, N4 and C4](https://cloud.google.com/blog/products/compute/a-closer-look-at-compute-engine-c4-and-n4-machine-series) +

Link diff --git a/examples/gcp-linux-tdx-vm/main.tf b/examples/gcp-linux-tdx-vm/main.tf index 6b9b011..aac4368 100644 --- a/examples/gcp-linux-tdx-vm/main.tf +++ b/examples/gcp-linux-tdx-vm/main.tf @@ -8,6 +8,7 @@ # -------------------------------------------------------- # Provision GCP virtual machine on Intel Xeon 4th Generation Scalable processors (code-named Sapphire Rapids) VM which supports Confidential Computing with Intel Trust Domain Extension (Intel TDX) technology # You will need to provide value of the variable project, which is your GCP project id when you do terraform apply +# As of August 2025 only C3 instances will support Intel TDX module "linux_vm" { #source = "intel/gcp-vm/intel" source = "../.." @@ -18,7 +19,7 @@ module "linux_vm" { enable_confidential_compute = var.enable_confidential_compute confidential_instance_type = var.confidential_instance_type on_host_maintenance = "TERMINATE" - machine_type = "c4-standard-4-lssd" + machine_type = "c3-standard-4" access_config = [{ diff --git a/examples/gcp-linux-vm-ico-by-densify/main.tf b/examples/gcp-linux-vm-ico-by-densify/main.tf index 5c8455a..9252f02 100644 --- a/examples/gcp-linux-vm-ico-by-densify/main.tf +++ b/examples/gcp-linux-vm-ico-by-densify/main.tf @@ -17,7 +17,7 @@ module "densify" { } # Intel module -# Provision GCP Xeon 4th Generation Scalable processors (code-named Sapphire Rapids) VM +# Provision GCP Xeon 6th Generation Scalable processors (code-named Granite Rapids) VM # You will need to provide value of the variable project, which is your GCP project id when you do terraform apply module "linux_vm" { source = "intel/gcp-vm/intel" diff --git a/examples/gcp-linux-vm-spot/main.tf b/examples/gcp-linux-vm-spot/main.tf index 152884b..4c2e049 100644 --- a/examples/gcp-linux-vm-spot/main.tf +++ b/examples/gcp-linux-vm-spot/main.tf @@ -6,7 +6,7 @@ # | | | | | || __/ | # |_|_| |_|\__\___|_| # -------------------------------------------------------- -# Provision GCP Xeon 5th Generation Scalable processors (code-named Emerald Rapids) VM +# Provision GCP Xeon 6th Generation Scalable processors (code-named Granite Rapids) VM # You will need to provide value of the variable project, which is your GCP project id when you do terraform apply module "spot_vm" { source = "intel/gcp-vm/intel" diff --git a/image.png b/image.png new file mode 100644 index 0000000000000000000000000000000000000000..fef78b5c3bd2b4ab9ec179e3418053dabf5ca47b GIT binary patch literal 55731 zcmZr&1z1#T*JVZ!1OrrB328}1O4^_i1f>O(mIkF`KrunO5ez~u-Hg(ac>Tqa|P_X!6zv!TZqyaOP^T$mx7T(^JKY#fw zjW%)8RhHu%VJv52a>9;>zRY=;%jSRke00M`#o)%p?fDYt;l`IG63abJrF1Gyu8ofI z^J3E@-J|i-(P(w%$GrHYQh12J|CqUth&CWQVL-%y!bAT3M_&uFbBG9Gest*XpW=RL zB^f2bc?s_#0m0u7!adhR86!-82~Xxo?f<*y1*$`d2odFz{dD(hP$*s^twtYGRMH`V zy*IfONyWcq!w+I33IBhW(xkiwS@DAs4ln+{O9`lOvJ=Q`-;X?d+gB=&S<^a%&|1FD zyQ{Czs~$$xKK4V1lX6!M?7iy-WwwdOLp-bNZ;tG}YmE52@cB!4f|tG?-ZiQ)7~}+2 z^d}hcx-!iFUypT=el$lIQJ3t$QtiF#CO)y~(Mx!KE0HK zaTxZZ4y%T!HL**jDd zly+Z(AL8lZD;Di-$9JZ__eMmB;>L*hy+g$whf>r%fwbe`eaW<^iH2#Yv@SBFT>;=`OT#F3^0Q&qUak82dx0xr9GE0dYG485AnKF z8_;|A@rpM>C=wb^9oMpV5Q8}Tw!Gmk+eYd={o1&NVVY;d?;~@%_H6g?_EjL`V?-G7 zRB9ac_Y9%;$(g>mLkJhr1ob@~UWr7RnJE%s^0wkm?_Ss#1AH+Fl}mVZ2FQbZ#;?kPsu62Iez7&Mknz_e%lW&{vP!B0!lx|J;Ucxgo=S6^lJD$-`PDQVN0&+)cwyx zJQ<1wfxE5mBK6%YniJ(6hwHT~ygVHoa&wc99<68ZH`FY*FIJTHe>tMv@=Wwr zcrT893uRN$FSvWt)YR06uo({_i|>GIU+&i0cvee_ifvcn`wtkJbu}yL{{Ik`yU*W2t z+8U0vrQp?{m}STK93a%l)Z@q^s9SyX__3~r+8`U!!9*c_Z0uXw`CdWm&M;2RYsAd9 zCxZ$sf4nd7*V9mMyP=^`%lvz0RJElxb6hQnq(a5LHj2BST9`QCcXQ0t@m6fC3rl+5j`@N=KrK2jN3AAxnpa|WgCC? z<#=z*KJK}E@7}$J7=h=MymY5d>6Lr9mc{#49I6&TyDi?eZky~X;?+ox(qLUyLugBD z%UaLCG?wc`pZdK9Zk(8jnBCak^si-#SkHWO_4%Vmk9s`j8|G9kzh~bzsf+kVSZY#7 zQKp1Ij1c3)e+Lgfdib!qz!~Otd9q70Q)cp{W|sbsJhMQJCAqDl{s)IvYrF%we0cfP6+?Z(InF6qcsU?*@HIj6ov%pd@GpV)pMuyZ26fOQx zqk?1|+HqvzJOREKPqzJ_%;X6*Y;ulvo+%yuu>*DyQZ32K1qqTNi{Uq&G>R4;{0@9C zNL+3m>!Cq@={aoC{o%t09ma|cSdTCb@#jryzvmdq2GVW9cJW>tP3bDMu4`;;oDK?p z#GBF3k!Plvp(9}3nXjqu$|5MJadCAbuPG!XB)?2!&ayqTCU1a%ghDCig8b1i=Bma7 zN$=ir&&rfy4YwfmEUlb@2BF@t*@}f`McdNZ%76Vx0#AvA^fErm32g05OiWDIFLQ%6 z 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 $1ymZ|)i(^VD@ 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 LR;J}9CnNp?uU$VP literal 0 HcmV?d00001 diff --git a/main.tf b/main.tf index b44b0c0..64a8b1f 100644 --- a/main.tf +++ b/main.tf @@ -18,12 +18,12 @@ locals { "n2": "Intel Ice Lake", "c3": "Intel Sapphire Rapids", "m3": "Intel Ice Lake", - "c2": "Intel Cascade Lake" - "n4": "Intel Emerald Rapids" - "c4": "Intel Granite Rapids" - "m1": null - "m2": null - "e2": null + "c2": "Intel Cascade Lake", + "n4": "Intel Emerald Rapids", + "c4": "Intel Granite Rapids", + "m1": null, + "m2": null, + "e2": null, "cu": null } min_cpu_platform = lookup(local.machine_types,one(regex(local.machine_type_regex, var.machine_type)),null) diff --git a/variables.tf b/variables.tf index 4d33d01..97b7314 100644 --- a/variables.tf +++ b/variables.tf @@ -1,7 +1,7 @@ ######################## #### Intel #### ######################## -# See policies.md, Intel recommends the 5th Generation Intel® Xeon® Platinum (Emerald Rapids) based instances. It is the latest Intel CPU generation globally available +# See policies.md, Intel recommends the 6th Generation Intel® Xeon® Platinum (Granite Rapids) based instances. It is the latest Intel CPU generation globally available # at the time of creation of this repo #General Purpose: n4-Standard: n4-standard-2, n4-standard-4, n4-standard-8, n4-standard-16, n4-standard-32, n4-standard-48, n4-standard-64, n4-standard-80 #General Purpose: n4-HighMem: n4-highmem-2, n4-highmem-4, n4-highmem-8, n4-highmem-16, n4-highmem-32, n4-highmem-48, n4-highmem-64, n4-highmem-80 From fc57dae4a85f976692c860dd5d52e7810c325fc3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 19 Aug 2025 16:52:34 +0000 Subject: [PATCH 13/15] terraform-docs: automated action --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2f53e3f..11ff950 100644 --- a/README.md +++ b/README.md @@ -219,7 +219,7 @@ No modules. | [enable\_vtpm](#input\_enable\_vtpm) | Use a virtualized trusted platform module, which is a specialized computer chip you can use to encrypt objects like keys and certificates. | `bool` | `true` | no | | [hostname](#input\_hostname) | A custom hostname for the instance. Must be a fully qualified DNS name and RFC-1035-valid | `string` | `null` | no | | [ipv6\_access\_config](#input\_ipv6\_access\_config) | Access configurations, i.e. IPs via which this instance can be accessed via the Internet. Omit to ensure that the instance is not accessible from the Internet. If omitted, ssh provisioners will not work unless Terraform can send traffic to the instance's network. This can be represented as multiple maps |

list(object({
public_ptr_domain_name = optional(string, null)
network_tier = optional(string, null)
}))
| `[]` | no | -| [machine\_type](#input\_machine\_type) | The machine type to create | `string` | `"c4-standard-4"` | no | +| [machine\_type](#input\_machine\_type) | The machine type to create | `string` | `"c4-standard-4-lssd"` | no | | [name](#input\_name) | A unique name for the resource, required by GCE. Changing this forces a new resource to be created. | `string` | n/a | yes | | [network](#input\_network) | The name or self\_link of the network to attach this interface to. | `string` | `"default"` | no | | [network\_ip](#input\_network\_ip) | The private IP address to assign to the instance. If empty, the address will be automatically assigned. | `string` | `""` | no | From f55ee2deca4db6f46ce0983a2e988115a8e98e9b Mon Sep 17 00:00:00 2001 From: mneru002 Date: Tue, 19 Aug 2025 10:27:59 -0700 Subject: [PATCH 14/15] Updated changes required --- examples/gcp-linux-tdx-vm/README.md | 2 +- examples/gcp-linux-tdx-vm/main.tf | 3 +-- examples/gcp-linux-tdx-vm/providers.tf | 10 +--------- examples/gen-ai-xeon-opea-chatqna/main.tf | 12 ++---------- examples/gen-ai-xeon-opea-codegen/main.tf | 2 +- 5 files changed, 6 insertions(+), 23 deletions(-) diff --git a/examples/gcp-linux-tdx-vm/README.md b/examples/gcp-linux-tdx-vm/README.md index 6c35390..dad8bdf 100644 --- a/examples/gcp-linux-tdx-vm/README.md +++ b/examples/gcp-linux-tdx-vm/README.md @@ -8,7 +8,7 @@ ## Intel GCP VM on default network -This module creates a Intel Confiddential Compute Linux VM on the default network with Intel Xeon 6th Generation Scalable processors (code-named Granite Rapids) VM with Confidential Computing and Intel Trust Domain Extension (Intel TDX) technology. +This module creates a Intel Confidential Compute Linux VM on the default network with Intel Xeon 4th Generation Scalable processors (code-named Sapphire Rapids) VM with Confidential Computing and Intel Trust Domain Extension (Intel TDX) technology. Update the project with a your project id in GCP. It is located on the variables.tf file under this example folder for "GCP-Linux-VM" diff --git a/examples/gcp-linux-tdx-vm/main.tf b/examples/gcp-linux-tdx-vm/main.tf index aac4368..d2d0829 100644 --- a/examples/gcp-linux-tdx-vm/main.tf +++ b/examples/gcp-linux-tdx-vm/main.tf @@ -10,8 +10,7 @@ # You will need to provide value of the variable project, which is your GCP project id when you do terraform apply # As of August 2025 only C3 instances will support Intel TDX module "linux_vm" { - #source = "intel/gcp-vm/intel" - source = "../.." + source = "intel/gcp-vm/intel" project = var.project name = "intel-tdx-linux01" diff --git a/examples/gcp-linux-tdx-vm/providers.tf b/examples/gcp-linux-tdx-vm/providers.tf index 2ce5e32..12d1310 100644 --- a/examples/gcp-linux-tdx-vm/providers.tf +++ b/examples/gcp-linux-tdx-vm/providers.tf @@ -1,11 +1,3 @@ -# provider "google" { -# zone = "us-central1-a" -# } - - provider "google" { - credentials = file("/home/mihikanerurkar/code/intel-csa-resource-gcp.json") - project = "intel-csa-resource-gcp" - region = "us-central1" - zone = "us-central1-b" + zone = "us-central1-a" } \ No newline at end of file diff --git a/examples/gen-ai-xeon-opea-chatqna/main.tf b/examples/gen-ai-xeon-opea-chatqna/main.tf index fe840b0..401de54 100644 --- a/examples/gen-ai-xeon-opea-chatqna/main.tf +++ b/examples/gen-ai-xeon-opea-chatqna/main.tf @@ -3,23 +3,15 @@ resource "random_id" "rid" { byte_length = 3 } -provider "google" { - credentials = file("/home/mihikanerurkar/code/intel-csa-resource-gcp.json") - project = "intel-csa-resource-gcp" - region = "us-central1" - zone = "us-central1-b" -} - #GCP Linux VM with Intel OPEA ChatQnA module "linux_vm" { - #source = "intel/gcp-vm/intel" - source = "../.." + source = "intel/gcp-vm/intel" project = var.project boot_image_project = "ubuntu-os-cloud" boot_image_family = "ubuntu-2204-lts" name = "ai-opea-chatqna-${random_id.rid.dec}" zone = "us-east4-a" - machine_type = "c4-standard-4-lssd" + machine_type = "c4-standard-48-lssd" allow_stopping_for_update = true tags = ["ai-opea-chatqna-${random_id.rid.dec}"] user_data = templatefile("./cloud_init.yml", { HUGGINGFACEHUB_API_TOKEN = var.huggingface_token }) diff --git a/examples/gen-ai-xeon-opea-codegen/main.tf b/examples/gen-ai-xeon-opea-codegen/main.tf index 2315c69..ae2a14b 100644 --- a/examples/gen-ai-xeon-opea-codegen/main.tf +++ b/examples/gen-ai-xeon-opea-codegen/main.tf @@ -11,7 +11,7 @@ module "linux_vm" { boot_image_family = "ubuntu-2204-lts" name = "ai-opea-codegen-${random_id.rid.dec}" zone = "us-east4-a" - machine_type = "c4-standard-4-lssd" + machine_type = "c4-standard-48-lssd" allow_stopping_for_update = true tags = ["ai-opea-codegen-${random_id.rid.dec}"] user_data = templatefile("./cloud_init.yml", { HUGGINGFACEHUB_API_TOKEN = var.huggingface_token }) From 6391d7af1217b1071ea544c35654621b6a7aacdc Mon Sep 17 00:00:00 2001 From: mneru002 Date: Wed, 20 Aug 2025 11:41:23 -0700 Subject: [PATCH 15/15] Updated root README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 11ff950..52ad3bf 100644 --- a/README.md +++ b/README.md @@ -11,10 +11,12 @@ This module provides the functionality to ensure that you are utilizing Intel's ## Performance Data -#### Intel Xeon 6 (Granite Rapids) now available on C4 VMs. These C4 instances can power even more demanding workloads, delivering the highest frequency of any Google Compute Engine VM — up to 4.2 GHz, the most vCPU and RAM of any Intel-based comparable product, larger L3 cache size, and 1.35x higher maximum memory bandwidth. +#### Intel Xeon 6 (Granite Rapids) now available on C4 VMs. Other variants are using the Intel Xeon 5th generation (Emerald Rapids)These C4 instances can power even more demanding workloads, delivering the highest frequency of any Google Compute Engine VM — up to 4.2 GHz, the most vCPU and RAM of any Intel-based comparable product, larger L3 cache size, and 1.35x higher maximum memory bandwidth. #### As of August 2025, the expanded C4 machine series with Intel Xeon 6 is available in 19 zones, with more expansion to come. Check the latest regional availability on our regions and zones page (https://cloud.google.com/compute/docs/regions-zones). Experience the leading performance, predictability, and control that C4 VMs deliver today! To learn more about C4 and its new capabilities, visit the C4 documentation. +#### Intel Xeon 6 Instance are available using the C4-standard-X-lssd or C4-highmem-X-lssd instance types. C4-standard-X and C4-highmem-X are going to be using 5th Gen Intel Xeon (Emerald Rapids) + #### Find all the information below plus even more by navigating our full library #### [INTEL CLOUD PERFROMANCE DATA LIBRARY for GCP](https://www.intel.com/content/www/us/en/developer/topic-technology/cloud/library.html?f:@stm_10381_en=%5BGoogle%20Alphabet%5D)