{"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/learning-performance-improving-code-edits","title":"Learning Performance-Improving Code Edits","arxiv_id":"2302.07867","date":"2023-02-15","proceeding":null,"authors":["Alexander Shypula","Aman Madaan","Yimeng Zeng","Uri Alon","Jacob Gardner","Milad Hashemi","Graham Neubig","Parthasarathy Ranganathan","Osbert Bastani","Amir Yazdanbakhsh"],"abstract":"With the decline of Moore's law, optimizing program performance has become a major focus of software research. However, high-level optimizations such as API and algorithm changes remain elusive due to the difficulty of understanding the semantics of code. Simultaneously, pretrained large language models (LLMs) have demonstrated strong capabilities at solving a wide range of programming tasks. To that end, we introduce a framework for adapting LLMs to high-level program optimization. First, we curate a dataset of performance-improving edits made by human programmers of over 77,000 competitive C++ programming submission pairs, accompanied by extensive unit tests. A major challenge is the significant variability of measuring performance on commodity hardware, which can lead to spurious \"improvements.\" To isolate and reliably evaluate the impact of program optimizations, we design an environment based on the gem5 full system simulator, the de facto simulator used in academia and industry. Next, we propose a broad range of adaptation strategies for code optimization; for prompting, these include retrieval-based few-shot prompting and chain-of-thought, and for finetuning, these include performance-conditioned generation and synthetic data augmentation based on self-play. A combination of these techniques achieves a mean speedup of 6.86 with eight generations, higher than average optimizations from individual programmers (3.66). Using our model's fastest generations, we set a new upper limit on the fastest speedup possible for our dataset at 9.64 compared to using the fastest human submissions available (9.56).","url_abs":"https://arxiv.org/abs/2302.07867v5","url_pdf":"https://arxiv.org/pdf/2302.07867v5.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":"learning-performance-improving-code-edits","repo_url":"https://github.com/madaan/pie-perf","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":null},{"paper_slug":"learning-performance-improving-code-edits","repo_url":"https://github.com/Mind23-2/MindCode-134","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"mindspore","reach":{"status":"ok"}}],"tasks":[{"task_slug":"code-generation","task_name":"Code Generation"},{"task_slug":"code-repair","task_name":"Code Repair"},{"task_slug":"data-augmentation","task_name":"Data Augmentation"},{"task_slug":"language-modelling","task_name":"Language Modelling"}],"methods":[{"method_slug":"adam","method_name":"Adam"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"attention-dropout","method_name":"Attention Dropout"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"codegen","method_name":"CodeGen"},{"method_slug":"cosine-annealing","method_name":"Cosine Annealing"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"gpt-3","method_name":"GPT-3"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"linear-warmup-with-cosine-annealing","method_name":"Linear Warmup With Cosine Annealing"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"weight-decay","method_name":"Weight Decay"}],"datasets_introduced":[{"slug":"performance-improving-code-edits-pie","name":"Performance Improving Code Edits (PIE)","full_name":"Performance Improving Code Edits"}],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2302.07867","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2302.07867"}},"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/madaan/pie-perf","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/Mind23-2/MindCode-134","reach":{"status":"ok"}}],"summary":{"ran_draft_wrong":1,"ran":6,"unverified":12},"by_repo_kind":{"official":{"samples":19,"ran":7,"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":19,"samples":[{"code_sha256_prefix":"540fd96572641577","entry":"get_anomalies","repo":"madaan/pie-perf","repo_kind":"official","path":"src/codenet_eval/run_eval.py","file_url":"https://github.com/madaan/pie-perf/blob/HEAD/src/codenet_eval/run_eval.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"540fd96572641577"}},{"code_sha256_prefix":"aef90ef51a665bd5","entry":"get_best_generation_per_submission","repo":"madaan/pie-perf","repo_kind":"official","path":"src/codenet_eval/run_eval.py","file_url":"https://github.com/madaan/pie-perf/blob/HEAD/src/codenet_eval/run_eval.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"aef90ef51a665bd5"}},{"code_sha256_prefix":"4e1a10fed322555f","entry":"is_linux","repo":"madaan/pie-perf","repo_kind":"official","path":"src/codenet_eval/run_eval.py","file_url":"https://github.com/madaan/pie-perf/blob/HEAD/src/codenet_eval/run_eval.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4e1a10fed322555f"}},{"code_sha256_prefix":"c101803bbb9b31c7","entry":"mean_std","repo":"madaan/pie-perf","repo_kind":"official","path":"src/codenet_eval/run_eval.py","file_url":"https://github.com/madaan/pie-perf/blob/HEAD/src/codenet_eval/run_eval.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c101803bbb9b31c7"}},{"code_sha256_prefix":"7eaeae08022b7013","entry":"run_cmd_for_time_eval","repo":"madaan/pie-perf","repo_kind":"official","path":"src/codenet_eval/run_eval.py","file_url":"https://github.com/madaan/pie-perf/blob/HEAD/src/codenet_eval/run_eval.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7eaeae08022b7013"}},{"code_sha256_prefix":"773a60b768feb034","entry":"run_cpp_code_on_inputs","repo":"madaan/pie-perf","repo_kind":"official","path":"src/codenet_eval/run_eval.py","file_url":"https://github.com/madaan/pie-perf/blob/HEAD/src/codenet_eval/run_eval.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"773a60b768feb034"}},{"code_sha256_prefix":"b14554bb5b015337","entry":"run_python_code_on_inputs","repo":"madaan/pie-perf","repo_kind":"official","path":"src/codenet_eval/run_eval.py","file_url":"https://github.com/madaan/pie-perf/blob/HEAD/src/codenet_eval/run_eval.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b14554bb5b015337"}},{"code_sha256_prefix":"37991ff1b0138b16","entry":"EvaluationConfig","repo":"madaan/pie-perf","repo_kind":"official","path":"src/codenet_eval/run_eval.py","file_url":"https://github.com/madaan/pie-perf/blob/HEAD/src/codenet_eval/run_eval.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"37991ff1b0138b16"}},{"code_sha256_prefix":"ed1e7b9c5b8615ca","entry":"_prepare_for_rerun","repo":"madaan/pie-perf","repo_kind":"official","path":"src/codenet_eval/run_eval.py","file_url":"https://github.com/madaan/pie-perf/blob/HEAD/src/codenet_eval/run_eval.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ed1e7b9c5b8615ca"}},{"code_sha256_prefix":"c72a3da727492d69","entry":"compile_cpp_code","repo":"madaan/pie-perf","repo_kind":"official","path":"src/codenet_eval/run_eval.py","file_url":"https://github.com/madaan/pie-perf/blob/HEAD/src/codenet_eval/run_eval.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c72a3da727492d69"}},{"code_sha256_prefix":"8b19025c6c05d32c","entry":"evaluate_generated_outputs","repo":"madaan/pie-perf","repo_kind":"official","path":"src/codenet_eval/run_eval.py","file_url":"https://github.com/madaan/pie-perf/blob/HEAD/src/codenet_eval/run_eval.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8b19025c6c05d32c"}},{"code_sha256_prefix":"1f09a6f0ad0d135a","entry":"get_accuracy","repo":"madaan/pie-perf","repo_kind":"official","path":"src/codenet_eval/run_eval.py","file_url":"https://github.com/madaan/pie-perf/blob/HEAD/src/codenet_eval/run_eval.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1f09a6f0ad0d135a"}},{"code_sha256_prefix":"52f66cb1672a41ff","entry":"get_input_from_prompt","repo":"madaan/pie-perf","repo_kind":"official","path":"src/codenet_eval/run_eval.py","file_url":"https://github.com/madaan/pie-perf/blob/HEAD/src/codenet_eval/run_eval.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"52f66cb1672a41ff"}},{"code_sha256_prefix":"3a991d80b8cbece2","entry":"limit_virtual_memory","repo":"madaan/pie-perf","repo_kind":"official","path":"src/codenet_eval/run_eval.py","file_url":"https://github.com/madaan/pie-perf/blob/HEAD/src/codenet_eval/run_eval.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3a991d80b8cbece2"}},{"code_sha256_prefix":"77ca852b3aaaa81a","entry":"print_summary","repo":"madaan/pie-perf","repo_kind":"official","path":"src/codenet_eval/run_eval.py","file_url":"https://github.com/madaan/pie-perf/blob/HEAD/src/codenet_eval/run_eval.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"77ca852b3aaaa81a"}},{"code_sha256_prefix":"7d44d630c645c37e","entry":"read_inputs_and_prepare","repo":"madaan/pie-perf","repo_kind":"official","path":"src/codenet_eval/run_eval.py","file_url":"https://github.com/madaan/pie-perf/blob/HEAD/src/codenet_eval/run_eval.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7d44d630c645c37e"}},{"code_sha256_prefix":"973eee46109fd821","entry":"run_code_on_inputs","repo":"madaan/pie-perf","repo_kind":"official","path":"src/codenet_eval/run_eval.py","file_url":"https://github.com/madaan/pie-perf/blob/HEAD/src/codenet_eval/run_eval.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"973eee46109fd821"}},{"code_sha256_prefix":"6db030a5cc638ec1","entry":"run_programs","repo":"madaan/pie-perf","repo_kind":"official","path":"src/codenet_eval/run_eval.py","file_url":"https://github.com/madaan/pie-perf/blob/HEAD/src/codenet_eval/run_eval.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6db030a5cc638ec1"}},{"code_sha256_prefix":"a177ad6c3baf7d7a","entry":"write_programs_read_ground_truth","repo":"madaan/pie-perf","repo_kind":"official","path":"src/codenet_eval/run_eval.py","file_url":"https://github.com/madaan/pie-perf/blob/HEAD/src/codenet_eval/run_eval.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a177ad6c3baf7d7a"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}