Optimization of Halide Image Processing Schedules with Reinforcement Learning

  • Marcelo Pecenin Federal University of Parana
  • André Murbach Maidl Elastic
  • Daniel Weingaertner Federal University of Parana

Abstract

Writing efficient image processing code is a very demanding task and much programming effort is put into porting existing code to new generations of hardware. Besides, the definition of what is an efficient code varies according to the desired optimization target, such as runtime, energy consumption or memory usage. We present a semi-automatic schedule generation system for the Halide DSL that uses a Reinforcement Learning agent to choose a set of scheduling options that optimizes the runtime of the resulting application. We compare our results to the state of the art implementations of three Halide pipelines and show that our agent is able to surpass hand-tuned code and Halide’s auto-scheduler on most scenarios for CPU and GPU architectures.

References

Ansel, J., Kamil, S., Veeramachaneni, K., Ragan-Kelley, J., Bosboom, J., O’Reilly, U.M., and Amarasinghe, S. (2014). Opentuner: An extensible framework for program autotuning. http://opentuner.org. Accessed 2018-01.

Dhariwal, P., Hesse, C., Klimov, O., et al. (2017). Openai baselines. https://github.com/openai/baselines. Accessed 2018-09.

Huang, S. (2018). Introduction to various reinforcement learning algorithms, part i: Q-learning, sarsa, dqn, ddpg. https://towardsdatascience.com/72a5e0cb6287. Accessed 2018-09.

Júnior, E. P. F. D. (2012). Aprendizado por reforço sobre o problema de revisitação de páginas web. Master’s thesis, Pós-Graduação em Informática - Pontifı́cia Universidade Católica do Rio de Janeiro, Rio de Janeiro - RJ.

Mullapudi, R. T., Adams, A., Sharlet, D., Ragan-Kelley, J., and Fatahalian, K. (2016) Automatically scheduling halide image processing pipelines. ACM Trans. Graph., 35(4):83:1–83:11.

Mullapudi, R. T., Vasista, V., and Bondhugula, U. (2015). Polymage: Automatic optimization for image processing pipelines. ACM SIGPLAN Notices, 50(4):429–443.

Ottoni, A. L. C., Oliveira, M. S., Nepomuceno, E. G., and Lamperti, R. D. (2015). Análise do aprendizado por reforço via modelos de regressão logı́stica: Um estudo de caso no futebol de robôs. Revista Junior de Iniciação Cientı́fica em Ciências Exatas e Engenharia, 1(10):44–49.

Pan, S. J., Yang, Q., et al. (2010). A survey on transfer learning. IEEE Trans. on Knowledge and Data Engineering, 22(10):1345–1359.

Ragan-Kelley, J. and Adams, A. (2012). Halide: A language for image processing. http://halide-lang.org. Accessed 2018-08.

Ragan-Kelley, J., Adams, A., Paris, S., Levoy, M., Amarasinghe, S., and Durand, F. (2012). Decoupling algorithms from schedules for easy optimization of image processing pipelines. ACM Trans. Graph., 31(4):32:1–32:12.

Ragan-Kelley, J., Barnes, C., Adams, A., Paris, S., Durand, F., and Amarasinghe, S. (2013). Halide: A language and compiler for optimizing parallelism, locality, and recomputation in image processing pipelines. ACM SIGPLAN Notices, 48(6):519–530.

Ragan-Kelley, J. M. (2014). Decoupling algorithms from the organization of computation for high performance image processing. PhD thesis, MIT.

Schulman, J., Wolski, F., Dhariwal, P., Radford, A., and Klimov, O. (2017). Proximal policy optimization algorithms. arXiv preprint arXiv:1707.06347.

Silva, L. M. D. D. (2016). Proposta de arquitetura em hardware para fpga da técnica qlearning de aprendizagem por reforço. Master’s thesis, Pós-Graduação em Engenharia Elétrica e de Computação - Universidade Federal do Rio Grande do Norte, Natal - RN.

Silver, D., Lever, G., Heess, N., Degris, T., et al. (2014). Deterministic policy gradient algorithms. In International Conference on Machine Learning.

Sutton, R. S. and Barto, A. G. (1998). Reinforcement learning: An introduction. MIT press Cambridge.
Published
2019-11-08
How to Cite
PECENIN, Marcelo; MAIDL, André Murbach; WEINGAERTNER, Daniel. Optimization of Halide Image Processing Schedules with Reinforcement Learning. Proceedings of the Symposium on High Performance Computing Systems (SSCAD), [S.l.], p. 37-48, nov. 2019. ISSN 0000-0000. Available at: <https://sol.sbc.org.br/index.php/sscad/article/view/8655>. Date accessed: 18 may 2024. doi: https://doi.org/10.5753/wscad.2019.8655.