AWS Certificate Manager (ACM) Private Certificate Authority (CA) has increased the limits per account for certificate creation and certificate revocation. The limits on the lifetime total certificates generated and revoked by a single CA has been increased from 50,000 to 1,000,000. This applies to all regions for which ACM Private CA is available. This limit increase is intended for organizations doing large scale certificate deployment to IOT, endpoints, and devices.
Today, we are excited to announce the new VMware Cloud on AWS Navigate track.
Together, VMware Cloud on AWS delivers a seamlessly integrated hybrid cloud solution that extends on-premises VMware environments to AWS elastic, bare-metal infrastructure that is fully integrated as part of the AWS. VMware Cloud on AWS will bring the capabilities of VMware’s enterprise class Software-Defined Data Center (SDDC) technologies to the AWS Cloud, and enable customers to run any application across vSphere-based private, public, and hybrid cloud environments.
The VMware Cloud on AWS Navigate track creates a prescriptive journey for APN Partners who want to build expertise in supporting AWS Customer projects for VMware Cloud solutions on AWS.
Learn more about the AWS Navigate Program, and all the AWS Navigate tracks available on the APN blog.
Amazon Web Services (AWS) announces general availability of Amazon Managed Blockchain, which is a fully managed service that makes it easy to create and manage scalable blockchain networks using the popular open source frameworks Hyperledger Fabric and Ethereum. Hyperledger Fabric is available today. Ethereum is coming soon.
AWS has updated AWS WAF Security Automations, a solution that automatically deploys a single web access control list (web ACL) with a set of AWS WAF rules designed to filter common web-based attacks.
When we ask developers why they choose Cloud Functions, “simplicity” comes up a lot: write a few lines of code, deploy and… voilà! You’ve got a serverless, auto-scaling, pay-per-use function running on Google Cloud.
A big part of that simplicity comes from being able to write Cloud Functions in your favorite programming language. That’s why we’re excited about our recent language support announcements at Google Cloud Next ‘19:
Python 3.7, Go 1.11 and Node.js 8 runtimes are now generally available.
Node.js 10 runtime is now in public beta.
Let’s take a closer look at one of the generally available runtimes:
Serverless + Python on Cloud Functions
Over the past six months, we’ve spoken to many established and up-and-coming customers who have used these runtimes to build on Cloud Functions. One customer, infarm, uses Cloud Functions and Python 3 to support its distributed network of efficient vertical farms:
The event driven interface was an especially good fit for our alerting stack, taking in more than 2.6 million plant- and farm-related measurements per day to prevent our crops from being affected by potential incidents. We rely on Google’s monitoring and alerting capabilities to monitor 400+ farms across Europe. – Nicolas Delaby, Lead Engineer, infarm
By opting for serverless on Google Cloud, infarm can focus on its mission: to help cities develop self-sufficient food production while improving agricultural safety, quality, and lowering their environmental footprint. Notice how that mission doesn’t include “managing my server infrastructure” or “learning new programming languages”?
Use Cloud Functions to process IoT data
Python and data processing go hand-in-hand. A common architectural pattern that we’ve observed among customers that use IoT devices is to have each device push sensor readings to a message bus. For example, one of infarm’s modular farms might have multiple IoT devices, each sending sensor data as messages to a Cloud Pub/Sub topic. When a message is delivered to the topic, it triggers a function, which performs a task. That task can be as simple as redirecting messages to a persistent datastore like Cloud SQL, to enriching data before inserting it in BigQuery, to performing complex processing.
Cloud Functions is a great choice for single purpose, repeated data processing use cases. Because Cloud Functions scales automatically based on load, it’s also a good fit for a project that will continue to grow into the future. As infarm adds new IoT devices, Cloud Functions scales up to meet that increased load.
A world of Python packages
Cloud Functions supports Python’s rich ecosystem of packages, which unlocks a huge variety of use cases. The Cloud Functions Python 3.7 runtime uses the open-source Python distribution so you can easily add packages to your Cloud Functions using `pip`. These dependencies are installed automatically when you deploy your function. Customers use this functionality to access Google Cloud APIs from Cloud Functions using the idiomatic `google-cloud-python` package. Others are using packages like NumPy and SciPy to create data processing pipelines.
Try Python 3.7 on Cloud Functions today
You don’t need to be on a visionary mission to reinvent food production to start writing functions with Python 3.7 today—check out the docs to get started.
Empower your AI Platform-trained serverless endpoints with machine learning on Google Cloud Functions
Editor’s note:Today’s post comes from Hannes Hapke at Caravel. Hannes describes how Cloud Functions can accelerate the process of hosting machine learning models in production for conversational AI, based on serverless infrastructure.
At Caravel, we build conversational AI for digital retail clients — work that relies heavily on Google Cloud Functions. Our clients experience website demand fluctuations that vary by the day of the week or even by time-of-day. Because of the constant change in customer requests, Google Cloud Platform’s serverless endpoints help us handle fluctuating demand for our service. Unfortunately, serverless functions are limited in available memory and CPU cycles, which makes them an odd place to deploy machine learning models. However, Cloud Functions offer a tremendous ease in deploying API endpoints, so we decided to integrate machine learning models without deploying them to the endpoints directly.
If your organization is interested in using serverless functions to help address its business problems, but you are unsure how you can use your machine learning models with your serverless endpoints, read on. We’ll explain how our team used Google Cloud Platform to deploy machine learning models on serverless endpoints. We’ll focus on our preferred Python solution and outline some ways you can optimize your integration. If you would prefer to build out a Node.js implementation, check out “Simplifying ML Prediction with Google Cloud Functions.”
First, let’s start with the architecture. As shown in Figure 1, this example consists of three major components: a static page accessible to the user, a serverless endpoint that handles all user requests, and a model instance running on AI Platform. While other articles suggest loading the machine learning model directly onto the serverless endpoint for online predictions, we found that approach to have a few downsides:
Loading the model will increase your serverless function memory footprint, which can accrue unnecessary expenses.
The machine learning model has to be deployed with the serverless function code, meaning the model can’t be updated independently from a code deployment.
For the sake of simplicity, we’re hosting the model for this example on an AI Platform serving instance, but we could also run our own Tensorflow Serving instance.
Before we describe how you might run your inference workload from a serverless endpoint, let’s quickly set up the model instance on Cloud AI Platform.
1. Upload the latest exported model to a Cloud Storage bucket. We exported our model from TensorFlow’s Keras API.
Create a bucket for your models and upload the latest trained model into its own folder.
2. Head over to AI Platform from the Console and register a new model.
Set up a new model on AI Platform.
3. After registering the model, set up a new model version, probably your V1. To start the setup steps, click on ‘Create version.’
Model URI link to the Cloud Storage Bucket where you saved the exported model.
You can choose between different ML frameworks. In our case, our model is based on TensorFlow 1.13.1.
For our demo, we disable model autoscaling.
Once the creation of the instance is completed and the model is ready to serve, you’ll see a green icon next to the model’s version name.
Inferring a prediction from a serverless endpoint
Inferring a prediction with Python is fairly straightforward. You need to generate a payload that you would like to submit to the model endpoint, and then you submit it to that endpoint. We’ll cover the generation of the payload in the following sections, but for now, let’s focus on inferring an arbitrary payload.
Google provides a Python library
google-api-python-client that allows you to access its products through a generic API interface. You can install it with:
Once installed, you need to “discover” your desired service. In our case, the service name is ml. However, you aren’t limited to just the prediction functionality; depending on your permissions (more later on that), you can access various API services of AI Platform. You’ll now want to execute any API request you created thus far. If you don’t encounter any errors, the response should contain the model’s response: its prediction.
Cloud Functions on Google Cloud Platform execute all requests as the user with the
By default, your account has Editor permissions for the entire project, and you should be able to execute online predictions. At the time of this blog post’s publication, you can’t control permissions per serverless function, but if you want to try out the functionality yourself, sign up for the Alpha Tester Program.
Generating a request payload
Before submitting our inference request, you need to generate your payload with the input data for the model. At Caravel, we trained a deep learning model to classify the sentiment of sentences. We developed our model on Keras and TensorFlow 1.13.1, and because we wanted to limit the amount of preprocessing required on the client side, we decided to implement our preprocessing steps with TensorFlow (TF) Transform. Using TF Transform has multiple advantages:
Preprocessing can occur server-side.
Because the preprocessing runs on the server side, you can update the preprocessing functionality without affecting the clients. If this weren’t the case, you could imagine a situation like the following: if you perform the preprocessing in a mobile client, you would have to update all clients in case you implement changes or provide new endpoints for every change (not scalable).
The preprocessing steps are consistent between the training, validation, and serving stages. Changes to the preprocessing steps will force you to re-train the model, which avoids misalignment between these steps and already trained models.
You can transform the dataset nicely and train and validate your datasets efficiently, but at time of writing, you still need to convert your Keras model to a TensorFlow Estimator, in order to properly integrate TF Transform with Keras. With TensorFlow Transform, you can submit raw data strings as inputs to the model. The preprocessing graph, which is running in conjunction with the model graph, will convert your string characters first into character indices and then into embedding vectors.
Connecting the preprocessing graph in TF Transform with our TensorFlow model
Our AI Platform instance and any TensorFlow Serving instance both expect a payload dictionary that includes the key
instances, which contains a list of input dictionaries for each inference. You can submit multiple input dictionaries in a single request; the model server can infer the predictions all in a single request through the amazing batching feature of TensorFlow Serving. Thus, the payload for your sentence classification demo should look like this:
We moved the generation step into its own helper function to allow for potential manipulation of the payload—when we want to lower-case or tokenize the sentences, for example. Here, however, we have not yet included such manipulations.
_connect_service provides us access to the AI platform service with the service name “ML”. At the time of writing this post, the current version was “v1”. We have encapsulated the service discovery into its own function to be able to add more parameters like account credentials, if needed.
Once you generate a payload in the correct data structure and have access to the GCP service, you can infer predictions from the AI Platform instance. Here is an example:
Obtaining model meta-information from the AI Platform training instance
Something amazing happens when the Cloud Function setup interacts with the AI Platform instance: the client can infer predictions without any knowledge of the model. You don’t need to specify the model version during the inference, because the AI Platform Serving instance handles that for you. However, it’s generally very useful to know which version was used for the prediction. At Caravel, we track our models’ performance extensively, and our team prioritizes knowing when each model was used and deployed and consider this to be essential information.
Obtaining the model meta information from the AI Platform instance is simple, because the Serving API has its own endpoint for requesting the model information. This helps a lot when you perform a large number of requests and only need to obtain the meta information once.
The little helper function below obtains model information for any given model in a project. You’ll need to call two different endpoints, depending on whether we want to obtain the information for a specific model version or just for the default model. You can specify this in the AI Platform Command Console.
Here is a brief example of metadata returned from the AI Platform API endpoint:
Serverless functions have proven very useful to our team, thanks to their scalability and ease of deployment. The Caravel team wanted to demonstrate that both concepts can work together easily and share our best practices, as machine learning becomes an essential component of a growing number of today’s leading applications.
In this blog post, we introduced the setup of a machine learning model on AI Platform and how to infer model predictions from a Python 3.7 Cloud Function. We also reviewed how you might structure your prediction payloads, as well as an overview of how you can request model metadata from the model server. By splitting your application between the Cloud Functions and AI Platform, you can deploy your legacy applications in an efficient and cost-effective manner.
If you’re interested in ways to reduce network traffic between your serverless endpoints, we recommend our follow-up post on how to generate model request payloads with the
ProtoBuf serialization format. To see this example live, check out our demo endpoint here, and if you want to start with some source code to build your own, you can find it in the ML on GCP GitHub repository.
Acknowledgements: Gonzalo Gasca Meza, Developer Programs Engineer contributed to this post.
From day one, our goal with Hire has been to provide an easy to use recruiting solution that enables collaboration, engagement and productivity for businesses of all sizes. That’s why we invested heavily in developing the only ML-powered recruiting solution that integrates with G Suite. As we spoke with our growing enterprise customers, they found that the benefits of Hire’s collaboration, engagement and productivity features are increasingly critical as they scale and grow geographically. So today, we’re expanding Hire’s capabilities to better serve enterprises, making the hiring process easier and more streamlined for businesses with thousands of employees.
Expanded capabilities for enterprises
For enterprises, tracking down the right approvers for new job requisitions and offers can take time away from critical tasks like finding and interviewing great talent. To optimize Hire for these businesses, we enhanced the requisition and offer approval flows to automatically suggest approvers for new job requisitions or offers. This makes it easy for large organizations to establish consistent global approval processes, while empowering recruiters to move faster.
We also introduced a referral portal to encourage every employee to source top talent, which can mean thousands of referrals for a large organization, and released a set of interactive reports to empower more informed decision making, so enterprises can make the most of all their data and optimize complex hiring processes.
Lastly, we expanded our connection to the larger HR technology ecosystem through APIs and pre-built integrations with Namely, Sapling, AppogeeHR, and Zenefits, so customers can easily manage the entire employee lifecycle and improve the experience for new hires.
“Our deep integration with Hire by Google helps joint clients streamline the earliest interactions between an employee and their company,” says Graham Younger, President and Chief Revenue Officer at Namely. “By using Google’s robust architecture to instantly create a new employee record in Namely each time an applicant is hired, we’re speeding the onboarding process for HR and creating a better employee experience from the initial interview to the first day on the job.”
Increasing collaboration and engagement in the recruiting process
For global teams, communication is key to quickly align on hiring decisions. Trimble, a technology company with over 11,000 employees across 30 countries, made the switch to Hire in mid-2018 and has seen tremendous value from Hire’s collaboration features.
“Hiring managers have the ability to easily go in and leave feedback, @mention recruiters, and change their interview teams,” explains Joe Shilkrot, Talent Acquisition Manager, North America of Trimble. “Hire makes it much easier for hiring managers to get involved in their positions, and it’s enabling us to work better together.”
Framestore, a visual effects and computer animation studio with nearly 3,000 employees across 3 continents, is leveraging Hire’s ability to work seamlessly with G Suite to streamline its hiring process. By working fluidly with the tools employees already live in, like Gmail, Calendar, and Sheets, Hire has become part of their existing process, instead of an extra step.
“Hire just fits into my workflow. It’s not like I think ‘oh, I’m in Hire,’ it’s just a seamless part of the tools I am already using,” says Amy Smith, Head of Talent at Framestore. Hire’s ability to intuitively fit into existing workflows has also led to a 50% uplift in hiring manager engagement for Framestore globally. “Hiring managers absolutely love it,” notes Amy. “For anyone familiar with a Google product, Hire is so familiar, so intuitive, and so easy to use. In fact, we actually didn’t do any training with hiring managers. They just intuitively figured it out and were off running instantly.”
Applying machine learning to simplify the hiring process
Features like Candidate Discovery in Hire apply machine learning to help businesses identify previously considered candidates in their existing databases that may be great for a new role. This translates into massive time savings for companies like Trimble, who has seen an increase in recruiter productivity since switching to Hire.
“With the ability to parse resumes, auto-suggest candidates, schedule interviews with ease and more, Hire enables our Talent Acquisition team to increase the number of requisitions they’re working on because they can move more quickly through the system,” explains Joe.
Titmouse, Inc. uses Hire to streamline the management of new applications on its careers page and search its existing database of candidates.
“We have a ‘General Submission’ section on the website where artists can submit their information if they don’t find a posted job that matches their skillset,” explains Sharon O’Donnell, HR Director at Titmouse, Inc. “That section now has more than 5,000 submissions, and growing rapidly, so we need a way to sift through it quickly. We have three locations, in LA, New York, and Vancouver, and candidate discovery has been an efficient tool we use to find artists by area of expertise and location.”
Try Hire today
To learn more about how Hire can help your business recruit the best talent, visit our website or schedule a demo today. Hire provides free data migration, dedicated support, and a straightforward pricing structure to set your team up for success.
We’re excited to announce Cray ClusterStor in Azure, a dedicated solution to accelerate data processing of the most complex HPC jobs running in Azure.
Microsoft and Cray are in an exclusive partnership to provide customers with unprecedented access to supercomputing capabilities in Azure and leverage the cloud to modernize how HPC is done.
Cray® ClusterStor™ in Azure
The new Cray® ClusterStor™ in Azure storage system is a high capacity and high throughput storage solution to accelerate your HPC simulations. It is a bare metal appliance that is fully integrated in the Azure fabric and accessible by a large selection of other Azure services.
HPC simulations continue to demand more from storage, including more performance AND more capacity, and this imperative remains a key requirement for high-performance workloads in the cloud.
Cray® ClusterStor™ in Azure offers a Lustre-based, single-tenant, bare metal and fully managed HPC environment in Microsoft Azure. It can be used with Cray XC and CS series supercomputers and also now supports data processing of HPC jobs executed on H-series virtual machines from Azure. You can move your data within Azure from high-performance scratch, to warm Azure blob storage and cold archive storage. You get access to high performance and capacity during simulation and move post-simulation data to a redundant, less-expensive cloud storage solution, to either be easily distributed or made available for your next simulation.
Cray® ClusterStor™ in Azure comes with competitive pricing and performance, enabling more than 3 times the throughput in GB/sec per Lustre Object Storage Servers (OSS) than the currently available Lustre offer.
If you are interested in learning more about these three offers:
- Please contact your Microsoft account manager or email us directly at [email protected]. We can take you through a deep dive on the offers and understand how we can customize them to your needs.
- Get access to our Sentinel POC environment, where you can test the offer and get a “hands on” experience of this unique platform.
The Jupyter Notebook on HDInsight Spark clusters is useful when you need to quickly explore data sets, perform trend analysis, or try different machine learning models. Not being able to track the status of Spark jobs and intermediate data can make it difficult for data scientists to monitor and optimize what they are doing inside the Jupyter Notebook.
To address these challenges, we are adding cutting edge job execution and visualization experiences into the HDInsight Spark in-cluster Jupyter Notebook. Today, we are delighted to share the release of the real time Spark job progress indicator, native matplotlib support for PySpark DataFrame, and the cell execution status indicator.
Spark job progress indicator
When you run an interactive Spark job inside the notebook, a Spark job progress indicator with a real time progress bar appears to help you understand the job execution status. You can also switch tabs to see a resource utilization view for active tasks and allocated cores, or a Gantt chart of jobs, stages, and tasks for the overall workload.
Native matplotlib support for PySpark DataFrame
Previously, PySpark did not support matplotlib. If you wanted to plot something, you would first need to export the PySpark DataFrame out of the Spark context, convert it into a local python session, and plot from there. In this release, we provide native matplotlib support for PySpark DataFrame. You can use matplotlib directly on the PySpark DataFrame just as it is in local. No need to transfer data back and forth between the cluster spark context and the local python session.
Cell execution status indicator
Step-by-step cell execution status is displayed beneath the cell to help you see its current progress. Once the cell run is complete, an execution summary with the total duration and end time will be shown and kept there for future reference.
These features have been built into the HDInsight Spark Jupyter Notebook. To get started, access HDInsight from the Azure portal. Open the Spark cluster and select Jupyter Notebook from the quick links.
For more information, check out the following:
This Quick Start builds a serverless CI/CD (continuous integration and continuous delivery) environment on the Amazon Web Services (AWS) Cloud, to provide an enterprise-ready, dynamic deployment pipeline.
Elastic Fabric Adapter (EFA), a low-latency network adapter for Amazon EC2 Instances, is now Generally Available for production use. EFA was first announced as a preview in November 2018.
EFA is a network interface for Amazon EC2 instances that enables customers to run High Performance Computing (HPC) applications requiring high levels of inter-instance communications, like computational fluid dynamics, weather modeling, and reservoir simulation, at scale on AWS. It uses a custom-built operating system bypass technique to enhance the performance of inter-instance communications, which is critical to scaling HPC applications. With EFA, HPC applications using popular HPC technologies like Message Passing Interface (MPI) can scale to thousands of CPU cores. EFA supports industry-standard libfabric APIs, so applications that use a supported MPI library can be migrated to AWS with little or no modification. EFA is available as an optional EC2 networking feature that you can enable on C5n.18xl and P3dn.24xl instances at no additional cost. EFA is currently available in US East (Ohio), US East (N. Virginia), US West (Oregon), EU (Ireland), and AWS GovCloud (US). Support for additional instances and regions will be added in the coming months.
Learn more about using EFA for your HPC workloads here.
NVIDIA’s T4 GPU, now available in regions around the world, accelerates a variety of cloud workloads, including high performance computing (HPC), machine learning training and inference, data analytics, and graphics. In January of this year, we announced the availability of the NVIDIA T4 GPU in beta, to help customers run inference workloads faster and at lower cost. Earlier this month at Google Next ‘19, we announced the general availability of the NVIDIA T4 in eight regions, making Google Cloud the first major provider to offer it globally.
A focus on speed and cost-efficiency
Each T4 GPU has 16 GB of GPU memory onboard, offers a range of precision (or data type) support (FP32, FP16, INT8 and INT4), includes NVIDIA Tensor Cores for faster training and RTX hardware acceleration for faster ray tracing. Customers can create custom VM configurations that best meet their needs with up to four T4 GPUs, 96 vCPUs, 624 GB of host memory and optionally up to 3 TB of in-server local SSD.
At time of publication, prices for T4 instances are as low as $0.29 per hour per GPU on preemptible VM instances. On-demand instances start at $0.95 per hour per GPU, with up to a 30% discount with sustained use discounts.
Tensor Cores for both training and inference
NVIDIA’s Turing architecture brings the second generation of Tensor Cores to the T4 GPU. Debuting in the NVIDIA V100 (also available on Google Cloud Platform), Tensor Cores support mixed-precision to accelerate matrix multiplication operations that are so prevalent in ML workloads. If your training workload doesn’t fully utilize the more powerful V100, the T4 offers the acceleration benefits of Tensor Cores, but at a lower price. This is great for large training workloads, especially as you scale up more resources to train faster, or to train larger models.
Tensor Cores also accelerate inference, or predictions generated by ML models, for low latency or high throughput. When Tensor Cores are enabled with mixed precision, T4 GPUs on GCP can accelerate inference on ResNet-50 over 10X faster with TensorRT when compared to running only in FP32. Considering its global availability and Google’s high-speed network, the NVIDIA T4 on GCP can effectively serve global services that require fast execution at an efficient price point. For example, Snap Inc. uses the NVIDIA T4 to create more effective algorithms for its global user base, while keeping costs low.
“Snap’s monetization algorithms have the single biggest impact to our advertisers and shareholders. NVIDIA T4-powered GPUs for inference on GCP will enable us to increase advertising efficacy while at the same time lower costs when compared to a CPU-only implementation.”
—Nima Khajehnouri, Sr. Director, Monetization, Snap Inc.
You can get up and running quickly, training ML models and serving inference workloads on NVIDIA T4 GPUs by using our Deep Learning VM images. These include all the software you’ll need: drivers, CUDA-X AI libraries, and popular AI frameworks like TensorFlow and PyTorch. We handle software updates, compatibility, and performance optimizations, so you don’t have to. Just create a new Compute Engine instance, select your image, click Start, and a few minutes later, you can access your T4-enabled instance. You can also start with our AI Platform, an end-to-end development environment that helps ML developers and data scientists to build, share, and run machine learning applications anywhere. Once you’re ready, you can use Automatic Mixed Precision to speed up your workload via Tensor Cores with only a few lines of code.
Performance at scale
NVIDIA T4 GPUs offer value for batch compute HPC and rendering workloads, delivering dramatic performance and efficiency that maximizes the utility of at-scale deployments. A Princeton University neuroscience researcher had this to say about the T4’s unique price and performance:
“We are excited to partner with Google Cloud on a landmark achievement for neuroscience: reconstructing the connectome of a cubic millimeter of neocortex. It’s thrilling to wield thousands of T4 GPUs powered by Kubernetes Engine. These computational resources are allowing us to trace 5 km of neuronal wiring, and identify a billion synapses inside the tiny volume.”
—Sebastian Seung, Princeton University
Quadro Virtual Workstations on GCP
T4 GPUs are also a great option for running virtual workstations for engineers and creative professionals. With NVIDIA Quadro Virtual Workstations from the GCP Marketplace, users can run applications built on the NVIDIA RTX platform to experience bring the next generation of computer graphics including real-time ray tracing and AI-enhanced graphics, video and image processing, from anywhere.
“Access to NVIDIA Quadro Virtual Workstation on the Google Cloud Platform will empower many of our customers to deploy and start using Autodesk software quickly, from anywhere. For certain workflows, customers leveraging NVIDIA T4 and RTX technology will see a big difference when it comes to rendering scenes and creating realistic 3D models and simulations. We’re excited to continue to collaborate with NVIDIA and Google to bring increased efficiency and speed to artist workflows.”
—Eric Bourque, Senior Software Development Manager, Autodesk
Get started today
Check out our GPU page to learn more about how the wide selection of GPUs available on GCP can meet your needs. You can learn about customer use cases and the latest updates to GPUs on GCP in our Google Cloud Next 19 talk, GPU Infrastructure on GCP for ML and HPC Workloads. Once you’re ready to dive in, try running a few TensorFlow inference workloads by reading our blog or our documentation and tutorials.