Accelerating cloud-to-edge development flows with GitHub Copilot and GitHub Actions
09 Nov 2024 (13 days ago)
Introduction and Arm's Vision
- Alex Spinelli, Senior Vice President of AI and Developer Platforms for Arm, introduces himself and mentions that Arm was awarded GitHub's Partner of the Year, highlighting the company's collaboration with GitHub (43s).
- Arm is a company that everyone has heard of, but not everyone knows about the amazing things they're doing, with a focus on engaging with the software development community to help their code run great on all Arm platforms (1m13s).
- Arm has shipped 300 billion devices worldwide, with full coverage in major cloud providers, and 20 million developers working on their platforms, making Arm ubiquitous in various devices and technologies (1m58s).
- Arm's vision is to extend beyond their hardware footprint and help developers in critical areas such as performance, efficiency, compatibility, portability, and advanced computational computing, including graphics rendering, gaming, and AI (3m11s).
- Arm aims to provide a single code base that can work across all platforms, from cloud to edge, ensuring confidence that the code will run great on any device, with a focus on price for performance and power efficiency (3m55s).
- Arm is integrating with GitHub Actions, Runners, and Arm instances in the cloud to enable the quantization and compilation of machine learning models, which can be deployed directly to mobile phones without emulators (4m15s).
- Arm is also integrating with GitHub Copilot to ease the development journey, providing guidance, best practices, and code generation along the way (4m37s).
- The presentation marks the beginning of a dialogue to show up for developers in new ways, starting with a partnership with GitHub to accelerate cloud-to-edge development flows. (4m53s)
- Eric, who is passionate about working with developers, will discuss how Arm plans to achieve its vision, work with its ecosystem, and partner with GitHub to lower barriers of entry and adoption. (5m8s)
Arm's Open Source Community and Cloud Presence
- Arm has a robust open-source community and industry footprint, contributing engineering resources and code to bring Arm tools into workflows and help developers meet performance optimizations. (6m10s)
- The goal is to make it easy for developers to migrate to the Arm architecture, take advantage of lower price performance, and total cost of ownership, and deploy software easily on the Arm platform. (6m55s)
- Arm is a ubiquitous platform showing up in clouds everywhere, with custom Arm silicon in major cloud service providers like AWS, Azure, and Google Cloud, offering tremendous savings on total deployment costs. (7m13s)
- Partnering with GitHub is essential to make the development process for migrating to Arm or making applications multi-architecture or multi-cloud as easy as possible, with a seamless experience. (8m0s)
- Arm has worked closely with GitHub over the last three years to bring Arm technology to GitHub Actions, with a core mission of uniting the world's most ubiquitous computing platform with the world's largest developer community. (8m21s)
- The partnership aims to enable developers to write once, build, test, and deploy software everywhere that Arm is, regardless of where the application is, and on various devices. (8m41s)
Partnership with GitHub and Cloud-to-Edge Development
- A migration of workload from Cloud to Edge is taking place, requiring a build and test deployment environment, which can be achieved with one repository, allowing developers to work and start the process (8m55s).
- The journey began two years ago at GitHub Universe 2022, where a partnership was announced, and work started by integrating compilers, ID tools, and best practices for modeling ARM architecture and models into GitHub Actions (9m8s).
- This integration allowed developers to access the necessary tools natively, without having to obtain a compiler, engage in licensing conversations, or pay fees, making it easier for embedded developers in the IoT landscape to modernize their workflows (9m33s).
- The initial setup received tremendous feedback and adoption, but also requests for something more native, as compiling, cross-compiling, and porting still required migration and translation of work done in emulation or virtual environments to native targets (10m5s).
- Last year, a use case was taken where there was an immediate need for instruction set architecture parody, and a vision for cloud-to-edge development was shared, enabling the software-defined vehicle of the future (10m32s).
- This year, progress is being reported on the action of ARM Runners, and a complete GitHub workflow is being introduced, combining the work of the last couple of years, including images for Linux, IM, and Windows, with a native ARM Runner and AI assistance from GitHub Copilot (11m31s).
- The ARM Runners were initially launched in a public beta in June of last year, receiving great feedback, and later announced as generally available for teams and Enterprise plans in September, with plans to expand to the open-source community early next year (12m11s).
- Over 2,000 enterprises have adopted arm Runners, which offer a lower price and seamless developer experience, allowing for migration of applications to arm or support for multiple architectures and deployment everywhere (13m5s).
- Arm Runners cost 37% less than alternatives for Windows and Linux development, resulting in significant savings for developers and their teams (13m26s).
- A startup saw build times improve from over 30 minutes to 4 minutes with arm Runners, while an AI application developer saved upfront effort with setup, installation, and management using the managed arm infrastructure (14m8s).
- Arm plans to bring these Runners to the open-source community later this year or early next year, and is interested in learning about use cases and the best ways to deploy them (14m48s).
MLOps and Arm 64 GitHub Runners
- MLOps (Machine Learning Operations) combines machine learning and DevOps for building, deploying, and maintaining machine learning models in a production environment at scale (15m51s).
- GitHub Actions can automate the entire ML life cycle, from data pre-processing to deployment of models, and the native arm 64 GitHub-hosted Runners are a game changer for these ML workflows due to their performance and vectorization technology (17m5s).
- The arm 64 GitHub-hosted Runners are built with the arm Neoverse family of CPUs, which power the Runners and arm instances in the cloud, and are built with vectorization technology like SIMD (17m16s).
- ARM has been working with leading cloud service providers and machine learning (ML) frameworks to bring together a development environment for optimized ML workflows on ARM-based hardware, with significant engineering investments in frameworks like PyTorch and TensorFlow, allowing for faster and seamless experiences when running ML models (17m52s).
- Native ARM 64 GitHub-hosted Runners are available with GitHub Actions, making it an excellent choice for MLOps workflows, and these Runners consume less power and are easy to scale within the GitHub Actions environment (17m45s).
- The combination of native ARM 64 Runners and ML frameworks like PyTorch and TensorFlow, which run faster on ARM, unlocks a powerful solution for automating machine learning workloads, particularly beneficial for MLOps and containerized AI applications (18m48s).
- The machine learning and MLOps software development workflow is different from traditional software workflows, with a tighter integration to the cloud for data collection, deployment, and monitoring, and involves collecting training data, optimizing neural network models, integrating with software packages, deploying to devices, and monitoring performance (19m10s).
- The native ARM 64 GitHub-hosted Runners can be leveraged to estimate the performance of optimized models directly in the cloud and seamlessly deploy them to Edge devices with the push of a button (20m17s).
- A Sandbox session will be hosted at GitHub Universe, walking attendees through how to utilize MLOps workflows in a real software project, anchored in an automotive use case, and providing step-by-step instructions and code samples for implementing MLOps pipelines with PyTorch and GitHub Actions (20m50s).
- Jason Andrews, a distinguished engineer at ARM, will co-present the Sandbox session, aiming to empower developers to master software development on ARM (21m23s).
GitHub Copilot Extension for Arm
- GitHub Copilot is being extended to support ARM, allowing developers to take advantage of performance efficiency and cost savings when migrating cloud applications or services to ARM-based instances (22m9s).
- The extension will bring together all the knowledge of ARM and provide the right context for developers in Copilot, filtering out unnecessary information and delivering up-to-date data (23m10s).
- The extension has two main goals: making Copilot aware that the developer is working on ARM and providing timely and accurate information to the developer (23m15s).
- By setting the right context and delivering accurate information, the extension aims to provide the best experience with Copilot and enable developers to learn more and move faster (23m59s).
- A demo of the extension shows how it can provide a curated experience for developers, reemphasizing the fact that they are working on ARM and providing relevant instructions and information (24m57s).
- The demo compares and contrasts the experience of using Copilot with and without the ARM extension, highlighting the benefits of the extension in providing accurate and relevant information (24m10s).
- The extension can provide answers to specific questions, such as how to install the Azure CLI on an ARM server in the cloud, and provide links to exact install instructions for more information (25m3s).
- The extension can also provide information on architecture-specific flags, such as those for large system extensions on Rust (25m41s).
- GitHub Copilot can be used to find information on optimizing performance for systems with many CPUs, and the ARM extension can provide specific guidance on using flags for ARM architecture, including the use of the
target-cpu
feature with lsse
for Linux architecture AR64 to achieve best performance (25m59s).
- For multi-architecture images for Docker, GitHub Copilot provides some information, but the ARM extension offers a clearer differentiation of options, including instruction emulation, Docker manifest command, and using a cloud service like Docker Build Cloud (26m40s).
- The ARM extension can provide a clear example of how to use the Docker manifest command to create a manifest that brings together images from different architectures and push it to a container repository, along with four CLI quick steps for understanding the process (27m1s).
- For information on hardware that supports the BFloat16 data type, the ARM extension can provide a list of ARM processors, including the Graviton 3 with Neoverse V1, which offers the highest performance (27m47s).
- To check if an ARM system has BFloat16 support, users can check
proc/cpuinfo
and look at the features, or use a small C program to detect the feature during runtime (28m7s).
- The benefits of using the ARM architecture can be demonstrated through the use of GitHub Actions and the ARM extension for GitHub Copilot, which provides a complete flow for building and testing executables in the cloud with no instruction emulation (28m56s).
- The ARM extension for GitHub Copilot will be available in the GitHub Marketplace in December, and the ARM Runners will be available for all projects, including open-source projects, early next year (29m13s).
Arm Developer Resources and Community
- Learn.arm.com is a website that provides a variety of technical articles and learning paths, which are technical how-to guides with detailed instructions for various software development tasks, ranging from server and cloud to microcontrollers (29m38s).
- Learning paths are community projects, and anyone can contribute to them by sharing information with the software developer community, with the opportunity to have their name and link to their GitHub profile featured (30m10s).
- Learning paths are hosted on GitHub, where users can find instructions on how to contribute and share their own material about developing on Arm (30m24s).
- The Arm Developer Program is a platform that allows developers to connect with others on Discord, attend developer events, and access additional developer resources, and it is free and easy to join (30m55s).
- The program can be signed up for at arm.com/developer-program, and it provides a space for developers to share their work and get hands-on experience with Arm Runners (31m10s).
- Arm Runners will be featured in a sandbox session, where attendees can see the ML Ops workflow in process and gain hands-on experience (31m26s).