{"id":{"repo_id":"mit","oai_identifier":"oai:dspace.mit.edu:1721.1/106444"},"canonical_url":"https://search.dev.ndltd.org/etd/mit/oai:dspace.mit.edu:1721.1/106444","repository":{"repo_id":"mit","name":"MIT","base_url":"https://dspace.mit.edu/oai/request"},"display":{"title":"HalideTuner : generating and tuning halide schedules with Opentuner","abstract":"Halide is a programming language designed to make it easier to write high-performance image processing code. Halide separates the scientific problem of how to write the image processing algorithm to get the required result from the engineering problem of how to schedule the different parts of this algorithm to get a fast solution. This allows Halide's users to test out different schedules for a single image processing algorithm to get the fastest program. Unfortunately, the amount of possible schedules is staggeringly large, and there is no deterministic way to find the fastest schedules. This leads to a lot of man-hours spent trying to find good Halide schedules. As Halide grows in popularity and the platforms on which it runs diversify, the need for Halide schedules will increase. As the need for good Halide schedules increases, so will the need for good schedule designers. However, given the elusiveness of highly performant schedules, machine generated schedules will become highly preferred to human trial and error. HalideTuner solves this problem by automating the entire process. The automation of the the schedule generation and tuning is done by a machine learning framework called Opentuner. Before Opentuner can operate, defining how to iterate through the search space needs to be codified. In this paper we present HalideTuner a codification of how Opentuner can manipulate Halide schedules to improve them in the process of clever trial and error. HalideTuner serves as the foundation for generating and tuning Halide schedules.","abstract_html":"Halide is a programming language designed to make it easier to write high-performance image processing code. Halide separates the scientific problem of how to write the image processing algorithm to get the required result from the engineering problem of how to schedule the different parts of this algorithm to get a fast solution. This allows Halide&#x27;s users to test out different schedules for a single image processing algorithm to get the fastest program. Unfortunately, the amount of possible schedules is staggeringly large, and there is no deterministic way to find the fastest schedules. This leads to a lot of man-hours spent trying to find good Halide schedules. As Halide grows in popularity and the platforms on which it runs diversify, the need for Halide schedules will increase. As the need for good Halide schedules increases, so will the need for good schedule designers. However, given the elusiveness of highly performant schedules, machine generated schedules will become highly preferred to human trial and error. HalideTuner solves this problem by automating the entire process. The automation of the the schedule generation and tuning is done by a machine learning framework called Opentuner. Before Opentuner can operate, defining how to iterate through the search space needs to be codified. In this paper we present HalideTuner a codification of how Opentuner can manipulate Halide schedules to improve them in the process of clever trial and error. HalideTuner serves as the foundation for generating and tuning Halide schedules.","abstract_has_math":false,"creators":["Zingales, Giuseppe Paolo Ernesto Toffanin"],"institution":"Massachusetts Institute of Technology","degree_name":null,"degree_level":null,"degree_discipline":null,"degree_department":"Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science.","school":null,"contributors":[],"advisors":["Saman Amarasinghe."],"committee_chairs":[],"committee_members":[],"year":2015,"date_issued":"2015","date_published":"2015","updated_at":"2026-07-22T22:20:47Z","subjects":["Electrical Engineering and Computer Science."],"languages":["eng"],"rights":["M.I.T. theses are protected by copyright. They may be viewed from this source for any purpose, but reproduction or distribution in any format is prohibited without written permission. See provided URL for inquiries about permission."],"rights_urls":["http://dspace.mit.edu/handle/1721.1/7582"],"identifier_entries":[]},"links":{"outbound_url":"http://hdl.handle.net/1721.1/106444","outbound_label":"Handle","outbound_source":"dc:identifier.uri"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor.advisor","label":"Advisor","values":["Saman Amarasinghe."]},{"key":"dc:contributor.department","label":"Department","values":["Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science."]},{"key":"dc:contributor.other","label":"Dc Contributor Other","values":["Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science."]},{"key":"dc:creator","label":"Author","values":["Zingales, Giuseppe Paolo Ernesto Toffanin"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date.accessioned","label":"Dc Date Accessioned","values":["2017-01-12T18:33:45Z"]},{"key":"dc:date.available","label":"Dc Date Available","values":["2017-01-12T18:33:45Z"]},{"key":"dc:date.issued","label":"Date","values":["2015"]},{"key":"dc:publisher","label":"Institution","values":["Massachusetts Institute of Technology"]},{"key":"dc:type","label":"Dc Type","values":["Thesis"]}]},{"id":"subjects_keywords","label":"Subjects and Keywords","entries":[{"key":"dc:subject","label":"Dc Subject","values":["Electrical Engineering and Computer Science."]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language.iso","label":"Language (ISO)","values":["eng"]},{"key":"dc:rights","label":"Dc Rights","values":["M.I.T. theses are protected by copyright. They may be viewed from this source for any purpose, but reproduction or distribution in any format is prohibited without written permission. See provided URL for inquiries about permission."]},{"key":"dc:rights.uri","label":"Rights URI","values":["http://dspace.mit.edu/handle/1721.1/7582"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier.uri","label":"Identifier URI","values":["http://hdl.handle.net/1721.1/106444"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description","label":"Description","values":["Thesis: M. Eng., Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, 2015.","Cataloged from PDF version of thesis.","Includes bibliographical references (page 77)."]},{"key":"dc:description.abstract","label":"Abstract","values":["Halide is a programming language designed to make it easier to write high-performance image processing code. Halide separates the scientific problem of how to write the image processing algorithm to get the required result from the engineering problem of how to schedule the different parts of this algorithm to get a fast solution. This allows Halide's users to test out different schedules for a single image processing algorithm to get the fastest program. Unfortunately, the amount of possible schedules is staggeringly large, and there is no deterministic way to find the fastest schedules. This leads to a lot of man-hours spent trying to find good Halide schedules. As Halide grows in popularity and the platforms on which it runs diversify, the need for Halide schedules will increase. As the need for good Halide schedules increases, so will the need for good schedule designers. However, given the elusiveness of highly performant schedules, machine generated schedules will become highly preferred to human trial and error. HalideTuner solves this problem by automating the entire process. The automation of the the schedule generation and tuning is done by a machine learning framework called Opentuner. Before Opentuner can operate, defining how to iterate through the search space needs to be codified. In this paper we present HalideTuner a codification of how Opentuner can manipulate Halide schedules to improve them in the process of clever trial and error. HalideTuner serves as the foundation for generating and tuning Halide schedules."]},{"key":"dc:description.degree","label":"Dc Description Degree","values":["M. Eng."]},{"key":"dc:title","label":"Title","values":["HalideTuner : generating and tuning halide schedules with Opentuner"]}]}],"canonical_facts":{"dc:contributor.advisor":["Saman Amarasinghe."],"dc:contributor.department":["Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science."],"dc:contributor.other":["Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science."],"dc:creator":["Zingales, Giuseppe Paolo Ernesto Toffanin"],"dc:date.accessioned":["2017-01-12T18:33:45Z"],"dc:date.available":["2017-01-12T18:33:45Z"],"dc:date.issued":["2015"],"dc:description":["Thesis: M. Eng., Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, 2015.","Cataloged from PDF version of thesis.","Includes bibliographical references (page 77)."],"dc:description.abstract":["Halide is a programming language designed to make it easier to write high-performance image processing code. Halide separates the scientific problem of how to write the image processing algorithm to get the required result from the engineering problem of how to schedule the different parts of this algorithm to get a fast solution. This allows Halide's users to test out different schedules for a single image processing algorithm to get the fastest program. Unfortunately, the amount of possible schedules is staggeringly large, and there is no deterministic way to find the fastest schedules. This leads to a lot of man-hours spent trying to find good Halide schedules. As Halide grows in popularity and the platforms on which it runs diversify, the need for Halide schedules will increase. As the need for good Halide schedules increases, so will the need for good schedule designers. However, given the elusiveness of highly performant schedules, machine generated schedules will become highly preferred to human trial and error. HalideTuner solves this problem by automating the entire process. The automation of the the schedule generation and tuning is done by a machine learning framework called Opentuner. Before Opentuner can operate, defining how to iterate through the search space needs to be codified. In this paper we present HalideTuner a codification of how Opentuner can manipulate Halide schedules to improve them in the process of clever trial and error. HalideTuner serves as the foundation for generating and tuning Halide schedules."],"dc:description.degree":["M. Eng."],"dc:identifier.uri":["http://hdl.handle.net/1721.1/106444"],"dc:language.iso":["eng"],"dc:publisher":["Massachusetts Institute of Technology"],"dc:rights":["M.I.T. theses are protected by copyright. They may be viewed from this source for any purpose, but reproduction or distribution in any format is prohibited without written permission. See provided URL for inquiries about permission."],"dc:rights.uri":["http://dspace.mit.edu/handle/1721.1/7582"],"dc:subject":["Electrical Engineering and Computer Science."],"dc:title":["HalideTuner : generating and tuning halide schedules with Opentuner"],"dc:type":["Thesis"]},"updated_at":"2026-07-22T22:20:47Z"}