{"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/reusing-auto-schedules-for-efficient-dnn","title":"Transfer-Tuning: Reusing Auto-Schedules for Efficient Tensor Program Code Generation","arxiv_id":"2201.05587","date":"2022-01-14","proceeding":null,"authors":["Perry Gibson","José Cano"],"abstract":"Auto-scheduling for tensor programs is a process where a search algorithm automatically explores candidate schedules (program transformations) for a given program on a target hardware platform to improve its performance. However this can be a very time consuming process depending on the complexity of the tensor program and the capacity of the target device, with often many thousands of program variants being explored. To address this, in this paper we introduce the idea of transfer-tuning, a novel approach to identify and reuse auto-schedules between tensor programs. We demonstrate this concept using Deep Neural Networks (DNNs), taking sets of auto-schedules from pre-tuned DNNs and using them to reduce the inference time of a new DNN. We compare transfer-tuning against the state-of-the-art Ansor auto-scheduler, defining the maximum possible speedup for a given DNN model as what Ansor achieves using its recommended full tuning time. On a server-class CPU and across 11 widely used DNN models, we observe that transfer-tuning achieves up to $88.41\\%$ ($49.13\\%$ on average) of this maximum speedup, while Ansor requires $6.5\\times$ more search time on average to match it. We also evaluate transfer-tuning on a constrained edge CPU and observe that the differences in search time are exacerbated, with Ansor requiring $10.8\\times$ more time on average to match transfer-tuning's speedup, which further demonstrates its value. Our code is available at https://www.github.com/gicLAB/transfer-tuning","url_abs":"https://arxiv.org/abs/2201.05587v2","url_pdf":"https://arxiv.org/pdf/2201.05587v2.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":"reusing-auto-schedules-for-efficient-dnn","repo_url":"https://github.com/giclab/transfer-tuning","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":null,"task_name":"CPU"},{"task_slug":"code-generation","task_name":"Code Generation"},{"task_slug":"scheduling","task_name":"Scheduling"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2201.05587","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2201.05587"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/giclab/transfer-tuning","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":2,"unverified":10},"by_repo_kind":{"official":{"samples":12,"ran":2,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"85eb95cce203dfc7","entry":"D_arch","repo":"giclab/transfer-tuning","repo_kind":"official","path":"src/models/gans/BigGAN/BigGAN.py","file_url":"https://github.com/giclab/transfer-tuning/blob/HEAD/src/models/gans/BigGAN/BigGAN.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"85eb95cce203dfc7"}},{"code_sha256_prefix":"e8c308c9283407d7","entry":"G_arch","repo":"giclab/transfer-tuning","repo_kind":"official","path":"src/models/gans/BigGAN/BigGAN.py","file_url":"https://github.com/giclab/transfer-tuning/blob/HEAD/src/models/gans/BigGAN/BigGAN.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e8c308c9283407d7"}},{"code_sha256_prefix":"a99a05ac52533be9","entry":"D_arch","repo":"giclab/transfer-tuning","repo_kind":"official","path":"src/models/gans/BigGAN/BigGANdeep.py","file_url":"https://github.com/giclab/transfer-tuning/blob/HEAD/src/models/gans/BigGAN/BigGANdeep.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a99a05ac52533be9"}},{"code_sha256_prefix":"44d6a6343f6eb182","entry":"G_arch","repo":"giclab/transfer-tuning","repo_kind":"official","path":"src/models/gans/BigGAN/BigGANdeep.py","file_url":"https://github.com/giclab/transfer-tuning/blob/HEAD/src/models/gans/BigGAN/BigGANdeep.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"44d6a6343f6eb182"}},{"code_sha256_prefix":"7fbfeaaf67384961","entry":"convert_to_hf_transformer_graphdef","repo":"giclab/transfer-tuning","repo_kind":"official","path":"src/models/models.py","file_url":"https://github.com/giclab/transfer-tuning/blob/HEAD/src/models/models.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7fbfeaaf67384961"}},{"code_sha256_prefix":"cb17c38b6be78875","entry":"get_ansor_times","repo":"giclab/transfer-tuning","repo_kind":"official","path":"src/visualization/plot_fig5.py","file_url":"https://github.com/giclab/transfer-tuning/blob/HEAD/src/visualization/plot_fig5.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"cb17c38b6be78875"}},{"code_sha256_prefix":"efe6d2a9c6142882","entry":"get_hf_tf_model","repo":"giclab/transfer-tuning","repo_kind":"official","path":"src/models/models.py","file_url":"https://github.com/giclab/transfer-tuning/blob/HEAD/src/models/models.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"efe6d2a9c6142882"}},{"code_sha256_prefix":"8412fd6d4393d0ca","entry":"get_main_results","repo":"giclab/transfer-tuning","repo_kind":"official","path":"src/visualization/plot_fig5.py","file_url":"https://github.com/giclab/transfer-tuning/blob/HEAD/src/visualization/plot_fig5.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8412fd6d4393d0ca"}},{"code_sha256_prefix":"3e3421add486fc6a","entry":"get_model_set_data","repo":"giclab/transfer-tuning","repo_kind":"official","path":"src/models/model_sets.py","file_url":"https://github.com/giclab/transfer-tuning/blob/HEAD/src/models/model_sets.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3e3421add486fc6a"}},{"code_sha256_prefix":"4e12644423bc0ca1","entry":"get_untuned_times","repo":"giclab/transfer-tuning","repo_kind":"official","path":"src/visualization/plot_fig5.py","file_url":"https://github.com/giclab/transfer-tuning/blob/HEAD/src/visualization/plot_fig5.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4e12644423bc0ca1"}},{"code_sha256_prefix":"f2c49fb545926598","entry":"load_keras_transformer_model","repo":"giclab/transfer-tuning","repo_kind":"official","path":"src/models/models.py","file_url":"https://github.com/giclab/transfer-tuning/blob/HEAD/src/models/models.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f2c49fb545926598"}},{"code_sha256_prefix":"1b2a9e6ff029028e","entry":"pytorch_onnx_exporter","repo":"giclab/transfer-tuning","repo_kind":"official","path":"src/models/export_model.py","file_url":"https://github.com/giclab/transfer-tuning/blob/HEAD/src/models/export_model.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1b2a9e6ff029028e"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}