Improving Inference Performance of Machine Learning with the Divide-and-Conquer Principle
Alex Kogan

TL;DR
This paper introduces a divide-and-conquer approach to improve inference performance of machine learning models on CPUs by partitioning tasks and allocating resources based on computational cost, implemented in OnnxRuntime.
Contribution
It proposes a practical divide-and-conquer method for CPU inference optimization, with implementation and evaluation on OCR and NLP models.
Findings
Significant speedup in inference times for tested models
Effective resource allocation improves CPU utilization
Method is applicable to various machine learning tasks
Abstract
Many popular machine learning models scale poorly when deployed on CPUs. In this paper we explore the reasons why and propose a simple, yet effective approach based on the well-known Divide-and-Conquer Principle to tackle this problem of great practical importance. Given an inference job, instead of using all available computing resources (i.e., CPU cores) for running it, the idea is to break the job into independent parts that can be executed in parallel, each with the number of cores according to its expected computational cost. We implement this idea in the popular OnnxRuntime framework and evaluate its effectiveness with several use cases, including the well-known models for optical character recognition (PaddleOCR) and natural language processing (BERT).
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsMachine Learning and Data Classification · Neural Networks and Applications
