Search for Well Architected Advice
Use optimized hardware-based compute accelerators
Selecting optimized hardware for your compute resources can significantly enhance performance efficiency. By leveraging hardware accelerators, specific computational tasks can be executed more rapidly than using traditional CPU-based processing. This ensures resource optimization based on application requirements and boosts overall system performance.
Best Practices
Utilize Compute Accelerators for Specialized Workloads
- Identify workloads that can benefit from acceleration, such as machine learning, data processing, or graphics rendering, as these typically require significant computation power.
- Evaluate and choose from a variety of hardware accelerators, such as GPUs, TPUs, and FPGAs, based on the specific requirements of your application.
- Assess the compatibility of the accelerators with your existing infrastructure and application design to ensure seamless integration.
- Implement performance benchmarking to compare the performance of accelerators versus standard CPU instances to quantify performance gains.
- Continuously monitor and analyze the workload performance to identify opportunities for optimization as workloads evolve and new accelerators become available.
Questions to ask your team
- Have you identified the specific workloads that benefit from hardware accelerators?
- Are you using the appropriate type of hardware accelerator for your application’s needs?
- How do you evaluate the performance improvement of using hardware accelerators compared to traditional compute resources?
- Have you conducted tests to measure the impact of using hardware accelerators on your workload’s performance?
- Is your architecture designed to easily integrate and scale hardware accelerators as needed?
- Are you considering cost-effectiveness when selecting hardware accelerators for compute tasks?
Who should be doing this?
Cloud Architect
- Evaluate application requirements to determine suitable compute resources.
- Identify opportunities to integrate hardware-based compute accelerators into architecture.
- Analyze performance metrics to assess the efficiency of compute choices.
- Collaborate with development teams to optimize application design for performance.
- Ensure proper configuration settings to leverage hardware accelerators effectively.
DevOps Engineer
- Implement and manage the deployment of compute resources in cloud environments.
- Monitor performance and usage patterns of workloads to recommend improvements.
- Automate processes for provisioning and scaling compute resources with the use of accelerators.
- Work with the Cloud Architect to integrate optimized hardware solutions into CI/CD pipelines.
Performance Engineer
- Conduct performance testing to evaluate the impact of using hardware-based compute accelerators.
- Identify bottlenecks and recommend adjustments based on performance findings.
- Document best practices for using accelerators to enhance performance efficiency.
- Support teams in understanding the trade-offs of different compute options.
What evidence shows this is happening in your organization?
- Compute Resource Selection Guide: A comprehensive guide outlining best practices for selecting compute resources, including the use of hardware-based compute accelerators. It provides insights on various workloads and performance metrics to consider.
- Performance Efficiency Checklist: A checklist to help teams evaluate their current compute resource utilization and assess whether they are making optimal use of hardware accelerators where applicable.
- AWS Compute Optimizer Report Template: A template for generating detailed reports using AWS Compute Optimizer, highlighting recommendations for optimized hardware usage tailored to specific workloads.
- Architecture Diagram for Accelerated Workloads: A visual representation of a sample architecture that incorporates hardware-based compute accelerators, illustrating how to structure workloads for maximum performance efficiency.
- Performance Tuning Runbook: A runbook that provides step-by-step instructions on how to leverage compute accelerators in an existing workload, including troubleshooting tips for common performance issues.
Cloud Services
AWS
- AWS Lambda: AWS Lambda allows you to run code without provisioning or managing servers, automatically scaling based on demand. It facilitates the use of optimized hardware by automatically optimizing the execution environment.
- Amazon EC2 Inf1 Instances: These instances are optimized for machine learning inference, providing up to 2.5x the throughput of previous generation instances at low latency, leveraging AWS Inferentia chips.
- Amazon Elastic Inference: This service enables you to attach low-cost GPU-powered inference to Amazon EC2 and SageMaker instances, accelerating deep learning inference in a cost-effective manner.
Azure
- Azure Machine Learning: Azure Machine Learning provides compute resources optimized for training and inference, allowing users to utilize GPU and FPGA options to enhance performance efficiency.
- Azure Batch: Azure Batch enables you to run parallel and high-performance computing (HPC) applications efficiently at scale by using various compute resources based on workload requirements.
Google Cloud Platform
- Google Cloud AI Platform: This platform allows you to leverage GPUs and TPUs to accelerate machine learning workloads, providing optimized compute choices for training and inference tasks.
- Google Kubernetes Engine (GKE): GKE allows you to deploy containerized applications with the option to use specialized hardware accelerators such as GPUs and TPUs, optimizing performance for workloads.
Question: How do you select and use compute resources in your workload?
Pillar: Performance Efficiency (Code: PERF)