{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/cltune-a-generic-auto-tuner-for-opencl","title":"CLTune: A Generic Auto-Tuner for OpenCL Kernels","arxiv_id":"1703.06503","date":"2017-03-19","proceeding":null,"authors":["Cedric Nugteren","Valeriu Codreanu"],"abstract":"This work presents CLTune, an auto-tuner for OpenCL kernels. It evaluates and\ntunes kernel performance of a generic, user-defined search space of possible\nparameter-value combinations. Example parameters include the OpenCL workgroup\nsize, vector data-types, tile sizes, and loop unrolling factors. CLTune can be\nused in the following scenarios: 1) when there are too many tunable parameters\nto explore manually, 2) when performance portability across OpenCL devices is\ndesired, or 3) when the optimal parameters change based on input argument\nvalues (e.g. matrix dimensions). The auto-tuner is generic, easy to use,\nopen-source, and supports multiple search strategies including simulated\nannealing and particle swarm optimisation. CLTune is evaluated on two GPU\ncase-studies inspired by the recent successes in deep learning: 2D convolution\nand matrix-multiplication (GEMM). For 2D convolution, we demonstrate the need\nfor auto-tuning by optimizing for different filter sizes, achieving performance\non-par or better than the state-of-the-art. For matrix-multiplication, we use\nCLTune to explore a parameter space of more than two-hundred thousand\nconfigurations, we show the need for device-specific tuning, and outperform the\nclBLAS library on NVIDIA, AMD and Intel GPUs.","url_abs":"http://arxiv.org/abs/1703.06503v1","url_pdf":"http://arxiv.org/pdf/1703.06503v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"cltune-a-generic-auto-tuner-for-opencl","repo_url":"https://github.com/CNugteren/CLTune","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":{"status":"ok","spdx":"NOASSERTION"}},{"paper_slug":"cltune-a-generic-auto-tuner-for-opencl","repo_url":"https://github.com/CNugteren/CLBlast","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":null,"task_name":"GPU"},{"task_slug":"unrolling","task_name":"Rolling Shutter Correction"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1703.06503","mcp":null,"developers":"https://syntology.ai/developers"},"arxiv_metadata":null,"syntology_extracted_results":null}