An Approach to Generating Recommendations for Improving the Performance of Software for Heterogeneous Computing Platforms

Artyom V. Gorchakov, Liliya A. Demidova


The widespread use of heterogeneous computing platforms, as well as the incorporation of computationally expensive implementations of intelligent data analysis algorithms into modern software systems leads to the demand in moving software fragments to most suitable hardware accelerators that are available on a heterogeneous computing platform. In this research, we propose an approach to the generation of recommendations for improving the performance of software systems by finding candidate algorithm implementations for hardware acceleration, and by suggesting the most suitable hardware accelerator among the specialized processors that are available on a given heterogeneous computing platform. The proposed approach is based on a code-to-code search technique, which extracts code fragments from an abstract syntax tree (AST), converts them into vectors containing program features, and compares the vectors with the query program vector. The obtained results confirm that the use of automatically recommended hardware accelerators for the code fragments identified using the proposed approach indeed allows to increase the performance of software systems solving machine learning tasks.

Full Text:



V.N. Glinskikh, A.R. Dudaev, O.V. Nechaev, “High-performance CPU – GPU heterogeneous computing in resistivity logging of oil and gas wells,” in Vychislitelnye Tekhnologii, 2017, Vol. 22, No. 3, pp. 16–31.

D.I. Mirzoyan, “Osnovnye aspekty primeneniya GPGPU sistem,” in Modern Information Technologies and IT-Education, 2011, No. 7, pp. 988–994.

E. Andrianova, P. Sovietov, I. Tarasov, “Hardware acceleration of statistical data processing based on FPGAs in corporate information systems,” in Proceedings of the 2020 2nd International Conference on Control Systems, Mathematical Modeling, Automation and Energy Efficiency (SUMMA), IEEE 2020, pp. 669–671.

S. Mittal, J.S. Vetter, “A Survey of CPU-GPU Heterogeneous Computing Techniques,” in ACM Computing Surveys (CSUR), 2015, Vol. 47, No. 4, pp. 1–35.

X. Liu, H.A. Ounifi, A. Gherbi, Y. Lemieux, W. Li, “A Hybrid GPU-FPGA-based Computing Platform for Machine Learning,” in Procedia Computer Science, 2018, Vol. 141, pp. 104–111.

F. Al-Ali, T.D. Gamage, H.W. Nanayakkara, F. Mehdipour, S.K. Ray, “Novel casestudy and benchmarking of AlexNet for edge AI: From CPU and GPU to FPGA,” in Proceedings of the 2020 IEEE Canadian Conference on Electrical and Computer Engineering (CCECE), IEEE, 2020, pp. 1–4.

J.E. Stone, D. Gohara, G. Shi, “OpenCL: A parallel programming standard for heterogeneous computing systems,” in Computing in science & engineering, 2010, Vol. 12, № 3, p. 66.

S. Cook, CUDA Programming: A Developer’s Guide to Parallel Computing with GPUs, San Francisco, CA, USA: Morgan Kaufmann Publishers Inc., 2012.

G. Gannot, M. Ligthart, “Verilog HDL based FPGA design,” in Proceedings of the International Verilog HDL Conference, IEEE, 1994, pp. 86–92.

W. Meeus, K. Van Beeck, T. Goedeme, J. Meel, D. Stroobandt, “An overview of today’s high-level synthesis tools,” in Design Automation for Embedded Systems, 2012, Vol. 16, pp. 31–51.

J.F. Licht, T.D. Matteis, T. Ben-Nun, A. Kuster, O. Rausch, M. Burger, C.J. Johnsen, T. Hoefler, “Python FPGA Programming with Data-Centric Multi-Level Design,” in arXiv, 2022, arXiv:2212.13768.

P.N. Sovetov, “Development of DSL Compilers for Specialized Processors,” in Programming and Computer Software, 2021, Vol. 47, No. 7, pp. 541–554.

D. Saha, R.S. Mitra, A. Basu, “Hardware software partitioning using genetic algorithm,” in Proceedings of the Tenth International Conference on VLSI Design, IEEE, 1997, pp. 155–160.

P. Arató, S. Juhász, Z.A. Mann, A. Orban, D. Papp, “Hardware-software partitioning in embedded system design,” in Proceedings of the IEEE International Symposium on Intelligent Signal Processing, IEEE, 2003, pp. 197–202.

P. Mokri, M. Hempstead, “Early-stage automated accelerator identification tool for embedded systems with limited area,” in Proceedings of the 39th International Conference on Computer-Aided Design, 2020, p. 115.

G. Zacharopoulos, L. Ferretti, G. Ansaloni, G. Di Guglielmo, L. Carloni and L. Pozzi, “Compiler-assisted selection of hardware acceleration candidates from application source code,” in Proceedings of the 2019 IEEE 37th International Conference on Computer Design (ICCD), IEEE, 2019, pp. 129–137.

A.V. Gorchakov, L.A. Demidova, P.N. Sovietov, “Analysis of Program Representations Based on Abstract Syntax Trees and Higher-Order Markov Chains for Source Code Classification Task,” in Future Internet, 2023, Vol. 15, № 9, p. 314.

T. Mikolov, I. Sutskever, K. Chen, G.S. Corrado, J. Dean, “Distributed Representations of Words and Phrases and their Compositionality,” in Advances in Neural Information Processing Systems, 2013, Т. 26, pp. 3111–3119.

U. Alon, M. Zilberstein, O. Levy, E. Yahav, “code2vec: Learning distributed representations of code,” in Proceedings of the ACM on Programming Languages, Association for Computing Machinery, 2019, Vol. 3, No. 40, pp. 1–29.

A.F. Da Silva, E. Borin, F.M.Q. Pereira, N.L. Queiroz, O.O. Napoli, “Program Representations for Predictive Compilation: State of Affairs in the Early 20’s,” in Journal of Computer Languages, 2022, Vol. 73, p. 101171.

Y. Yu, Z. Huang, G. Shen, W. Li, Y. Shao, “ASTENS-BWA: Searching partial syntactic similar regions between source code fragments via AST-based encoded sequence alignment,” in Science of Computer Programming, 2022, No. 222, p. 102839.

T. Silveira, M. Zhang, X. Lin, Y. Liu, S. Ma, “How good your recommender system is? A survey on evaluations in recommendation,” in International Journal of Machine Learning and Cybernetics, 2019, Vol. 10, pp. 813–831.

A.V. Gorchakov, “Methods and Algorithms for Identifying Program Fragments for Making Recommendations with the Aim to Increase the Speed of Software Systems,” in Vestnik of Ryazan State Radio Engineering University, 2023, Vol. 86, pp. 96–109.

Python Software Foundation. AST — Abstract Syntax Trees, Python Documentation. URL: (accessed at 20.02.2024)

S.M. Staroletov, A.V. Dubko, “A method to verify parallel and distributed software in C# by doing Roslyn AST transformation to a Promela model,” in System Informatics, 2019, No. 15, pp. 13–44.

A.V. Gorchakov, L.A. Demidova, “Intelligent Accounting of Educational Achievements in the Digital Teaching Assistant System,” in International Journal of Open Information Technologies, 2023, Vol. 11, No. 4, pp. 106–115.

L.A. Demidova, E.G. Andrianova, P.N. Sovietov, A.V. Gorchakov, “Dataset of Program Source Codes Solving Unique Programming Exercises Generated by Digital Teaching Assistant,” in Data, 2023, Vol. 8, No. 6, p. 109.

P.N. Sovietov, A.V. Gorchakov, “Digital Teaching Assistant for the Python Programming Course,” in Proceedings of the 2022 2nd International Conference on Technology Enhanced Learning in Higher Education (TELE), IEEE, 2022, pp. 272–276.

E. Fix, J. Hodges, “Discriminatory Analysis. Nonparametric Discrimination: Consistency Properties,” in International Statistical Review, 1989, 57, pp. 238–247.

C. Cortes, V. Vapnik, “Support-vector networks,” in Machine Learning, 1995, Vol. 20, pp. 273–297.

T.K. Ho, “Random Decision Forests,” in Proceedings of the 3rd International Conference on Document Analysis and Recognition, Montreal, QC, Canada, 14–16 August 1995; IEEE: Piscataway, NJ, USA, 1995; pp. 278–282.

F. Rosenblatt, “The perceptron: A probabilistic model for information storage and organization in the brain,” in Psychological Review, 1958, Vol. 65, pp. 386–408.

F. Pedregosa, G. Varoquaux, A. Gramfort, V. Michel, B. Thirion, O. Grisel, M. Blondel, P. Prettenhofer, R. Weiss, V. Dubourg, “Scikit-learn: Machine learning in Python,” in Journal of Machine Learning Research, 2011, Vol. 12, pp. 2825–2830.

G.B. Huang, Q.Y. Zhu, C.K. Siew, “Extreme learning machine: theory and applications,” in Neurocomputing, 2006, Vol. 70, No. 1–3, pp. 489–501.

A. Paszke, S. Gross, F. Massa, A. Lerer, J. Bradbury, G. Chanan, T. Killeen, Z. Lin, N. Gimenshein et al. “PyTorch: An Imperative Style, High-performance Deep Learning Library,” in Advances in Neural Information Processing Systems, 2019, Vol. 32.

J. Curtis, “On language-agnostic abstract-syntax trees: student research abstract,” in Proceedings of the 37th ACM/SIGAPP Symposium on Applied Computing, 2022, pp. 1619–1625.


  • There are currently no refbacks.

Abava  Кибербезопасность MoNeTec 2024

ISSN: 2307-8162