Print Email Facebook Twitter Evaluating STOKE Title Evaluating STOKE Author Kowalewski, Przemysław (TU Delft Electrical Engineering, Mathematics and Computer Science) Contributor Chakraborty, S.S. (mentor) Sprokholt, D.G. (mentor) Demirović, E. (graduation committee) Degree granting institution Delft University of Technology Programme Computer Science and Engineering Project CSE3000 Research Project Date 2022-06-23 Abstract STOKE is one of the Superoptimizers which are programs that given a function and a set of instructions of a processor, traverse through a space of programs that compute a given function and try to find the optimal usually in terms of execution speed or size of the binary. Authors of STOKE make some extraordinary claims. They suggest that it is able to produce programs that are multiple times faster than programs without any optimization, and programs which are at least as efficient as programs produced by gcc -O3 and sometimes expert handwritten assembly. The goal of this paper is to check these claims. In this paper classes of programs that STOKE may handle particularly well and any class of programs that stochastic optimization might not be able to handle will be identified. We conclude from the experiments described in this paper that STOKE is able to fulfill that statement in some cases. The searching algorithm of STOKE is not always able to find programs that are at least as efficient as programs optimized by gcc -O3. STOKE works particularly well in programs where a lot consecutive logical and mathematical operations are calculating (e.g. counting bits). It is often not that successful with programs containing loops where it sometimes can’t find a solution at all. Subject CompilersOptimizationStochasticsuperoptimization To reference this document use: http://resolver.tudelft.nl/uuid:dfa5093f-7fa3-4d7a-99d8-059e6bf6349e Part of collection Student theses Document type bachelor thesis Rights © 2022 Przemysław Kowalewski Files PDF Research_Project.pdf 415.65 KB Close viewer /islandora/object/uuid:dfa5093f-7fa3-4d7a-99d8-059e6bf6349e/datastream/OBJ/view