  The rapid development of domain-specific frameworks has presented us with a
significant challenge: The current approach of implementing solutions on a
case-by-case basis incurs a theoretical complexity of O(M*N), thereby
increasing the cost of porting applications to different hardware platforms. To
address these challenges, we propose a systematic methodology that effectively
bridges the gap between domain-specific frameworks and multiple hardware
devices, reducing porting complexity to O(M+N). The approach utilizes
multi-layer abstractions. Different domain-specific abstractions are employed
to represent applications from various domains. These abstractions are then
transformed into a unified abstraction, which is subsequently translated into
combinations of primitive operators. Finally, these operators are mapped to
multiple hardware platforms. The implemented unified framework supports deep
learning, classical machine learning, and data analysis across X86, ARM,
RISC-V, IoT devices, and GPU. It outperforms existing solutions like
scikit-learn, hummingbird, Spark, and pandas, achieving impressive speedups:
1.1x to 3.83x on X86 servers, 1.06x to 4.33x on ARM IoT devices, 1.25x to 3.72x
on RISC-V IoT devices, and 1.93x on GPU. The source code is available at
https://github.com/BenchCouncil/bridger.git.
