Sample Submission 1
Profiling and Optimizing AR & ML Applications for Mobile Devices
AI & Machine Learning
Augmented reality technology is set to completely disrupt the way the world works. For the first time in history people’s creativity will be able to alter reality as experienced in real time. This change will be delivered through the billions of devices people carry every day: smartphones.
Current mobile apps and games are optimized to take full advantage of the hardware they run on, from a premium to a low-end smartphone. The next generation of software delivering augmented reality experiences to users require both huge amounts of compute and clever implementation of machine learning algorithms. Because of that, optimizing AR applications is essential to deliver a quality user experience across a wide range of hardware devices.
Profiling the dynamic performance of applications is an ideal way to optimize them based on hard numbers. In this workshop you will walk through the process of coding, testing, profiling, and optimizing a real AR application using ML algorithms on a smartphone.
Focusing on developing quality software quickly and inexpensively is vital to the success of any technology project. This is becoming more and more difficult due to the growing complexity of software. Augmented reality with machine learning technology in particular poses a challenge to developers trying to create optimized applications without going over time or budget.
This session is intended to instruct attendees on the best-practices behind profiling and optimizing these complex applications, as well as position Arm as both the go-to hardware and software tools resource in the mobile space.
The workshop will have this outline:
- Setting the stage – Why optimizing AR & ML apps is so hard yet so critical for successful projects
- App demonstration – A live demo of an un-optimized AR app based on ArmNN from Arm and ARCore from Google
- App profiling an optimization – Walk the attendees through profiling and optimizing the application with the Unity and Arm Mobile Studio tools using a real smartphone via the AWS device farm
- Run app again – See that app runs smoother post-optimization
The speakers will be Speaker 1 and Speaker 2. Speaker 1 works with development tools on a technical level every day and specializes in designing solutions focused around ease-of-use. Speaker 2 brings his extensive experience in machine learning and software development, ensuring the workshop will be relevant to the attendees.
Realistic best-practices regarding how to profile and optimize a complex AR app that uses ML algorithms on a range of smartphone devices.
Sample Submission 2
Software Development for the Arm Architecture with Docker
Embedded Software Development
Docker’s container platform is quickly changing the way software is developed and deployed. Arm is working with Docker to accelerate cloud, edge, and IoT development. Millions of Arm developers can now leverage Docker-based solutions to build and deploy their applications more quickly and easily across a wide range of applications from cloud to edge to device.
This workshop introduces new tools and concepts to accelerate development and streamline deployments of AI and ML workloads on Arm edge and IoT devices.
The workshop will provide a hands-on session with Docker Desktop on Windows or Mac, Amazon Web Services (AWS) A1 instances, and embedded Linux. Attendees will be provided with multiple examples and demonstrations of how to use Docker to streamline software development. The session will cover the latest Docker features to build, share, and run multi-architecture images with transparent support for Arm.
Traditional embedded Linux application development relies on cross-compiling software on a Windows or Linux machine and copying files to a target board running Linux on Arm Cortex-A. This process often involves complex scripts and build procedures that are difficult to maintain and depend heavily on the machine being used to build the software and the tools installed. Another solution is to compile the software directly on the embedded board. Native compilation makes the process easier but takes longer due to the speed of the embedded board. Native compilation also strains embedded boards because they have limited memory compared to desktop machines and servers. Deploying the software to the embedded board is also difficult as the packaging and copying of the complete software package is complex, especially when many boards need to be updated frequently with new software. Run-time errors due to dynamic linking are common.
Web developers often struggle with installing needed dependencies on each machine in a consistent way that allows developers to work on the desktop and on the server and quickly move code around. Today, many applications have many components that interact with each other and need to be easily started from a single command to coordinate the launch.
Docker is changing the way software engineers create, build, share, and run software for the Arm architecture. New Docker features enable multi-architecture images to be created from Windows, Linux, and Mac machines which support the Arm architecture. These multi-architecture images are built from a single command and can be run on desktop machines with x86 CPUs using instruction translation as well as on Arm systems such as the Amazon AWS A1 instance and the target Arm embedded board. Docker multi- architecture images eliminate struggling with cross compilation and differences in installed software and libraries.
The workshop introduces multiple applications which benefit from containers and work on laptops, servers, and embedded boards. Attendees will leave the workshop proficient with Docker on Arm.
Session Learning Objectives
Attendees will learn how to use Docker for Arm to build, run, and share Linux applications through hands- on examples and be able to apply what they learn to their own projects.