{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,1]],"date-time":"2026-05-01T17:16:59Z","timestamp":1777655819667,"version":"3.51.4"},"reference-count":71,"publisher":"Association for Computing Machinery (ACM)","issue":"5","license":[{"start":{"date-parts":[[2017,10,11]],"date-time":"2017-10-11T00:00:00Z","timestamp":1507680000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Graph."],"published-print":{"date-parts":[[2017,10,31]]},"abstract":"<jats:p>\n            Many graphics and vision problems can be expressed as non-linear least squares optimizations of objective functions over visual data, such as images and meshes. The mathematical descriptions of these functions are extremely concise, but their implementation in real code is tedious, especially when optimized for real-time performance on modern GPUs in interactive applications. In this work, we propose a new language, Opt,\n            <jats:sup>1<\/jats:sup>\n            for writing these objective functions over image- or graph-structured unknowns concisely and at a high level. Our compiler automatically transforms these specifications into state-of-the-art GPU solvers based on Gauss-Newton or Levenberg-Marquardt methods. Opt can generate different variations of the solver, so users can easily explore tradeoffs in numerical precision, matrix-free methods, and solver approaches.\n          <\/jats:p>\n          <jats:p>In our results, we implement a variety of real-world graphics and vision applications. Their energy functions are expressible in tens of lines of code and produce highly optimized GPU solver implementations. These solvers are competitive in performance with the best published hand-tuned, application-specific GPU solvers, and orders of magnitude beyond a general-purpose auto-generated solver.<\/jats:p>","DOI":"10.1145\/3132188","type":"journal-article","created":{"date-parts":[[2017,10,12]],"date-time":"2017-10-12T12:52:50Z","timestamp":1507812770000},"page":"1-27","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":37,"title":["Opt"],"prefix":"10.1145","volume":"36","author":[{"given":"Zachary","family":"Devito","sequence":"first","affiliation":[{"name":"Facebook Research"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Michael","family":"Mara","sequence":"additional","affiliation":[{"name":"Stanford University"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Michael","family":"Zollh\u00f6fer","sequence":"additional","affiliation":[{"name":"Max-Planck-Institute for Informatics"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Gilbert","family":"Bernstein","sequence":"additional","affiliation":[{"name":"Stanford University"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jonathan","family":"Ragan-Kelley","sequence":"additional","affiliation":[{"name":"UC Berkeley"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Christian","family":"Theobalt","sequence":"additional","affiliation":[{"name":"Max-Planck-Institute for Informatics"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Pat","family":"Hanrahan","sequence":"additional","affiliation":[{"name":"Stanford University"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Matthew","family":"Fisher","sequence":"additional","affiliation":[{"name":"Adobe Research"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Matthias","family":"Niessner","sequence":"additional","affiliation":[{"name":"Technical University of Munich"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2017,10,11]]},"reference":[{"key":"e_1_2_2_1_1","volume-title":"Keir Mierle et al","author":"Agarwal Sameer","year":"2010","unstructured":"Sameer Agarwal , Keir Mierle et al . 2010 . Ceres Solver. Retrieved from http:\/\/ceres-solver.org. Sameer Agarwal, Keir Mierle et al. 2010. Ceres Solver. Retrieved from http:\/\/ceres-solver.org."},{"key":"e_1_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICCV.2009.5459148"},{"key":"e_1_2_2_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/344779.344859"},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.1137\/110840819"},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/2892632"},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.1137\/1.9781611971484"},{"key":"e_1_2_2_7_1","unstructured":"Sergey Bochkanov. 1999. ALGLIB. Retrieved from http:\/\/www.alglib.net.  Sergey Bochkanov. 1999. ALGLIB. Retrieved from http:\/\/www.alglib.net."},{"key":"e_1_2_2_8_1","first-page":"6","article-title":"Interact","volume":"33","author":"Bonneel Nicolas","year":"2014","unstructured":"Nicolas Bonneel , Kalyan Sunkavalli , James Tompkin , Deqing Sun , Sylvain Paris , and Hanspeter Pfister . 2014 . Interact . Intrinsic Video Edit. 33 , 6 (Nov. 2014), 197:1--10. DOI:https:\/\/doi.org\/10.1145\/2661229.2661253 10.1145\/2661229.2661253 Nicolas Bonneel, Kalyan Sunkavalli, James Tompkin, Deqing Sun, Sylvain Paris, and Hanspeter Pfister. 2014. Interact. Intrinsic Video Edit. 33, 6 (Nov. 2014), 197:1--10. DOI:https:\/\/doi.org\/10.1145\/2661229.2661253","journal-title":"Intrinsic Video Edit."},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1017\/CBO9780511804441"},{"key":"e_1_2_2_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/980175.980179"},{"key":"e_1_2_2_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/3072959.3054739"},{"key":"e_1_2_2_12_1","unstructured":"Frank Dellaert. 2012. GTSAM. Retrieved from https:\/\/collab.cc.gatech. edu\/borg\/gtsam.  Frank Dellaert. 2012. GTSAM. Retrieved from https:\/\/collab.cc.gatech. edu\/borg\/gtsam."},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1137\/0719025"},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF02592055"},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/311535.311576"},{"key":"e_1_2_2_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/2491956.2462166"},{"key":"e_1_2_2_17_1","volume-title":"Proceedings of the 18th Central European Seminar on Computer Graphics.","author":"Dvoroznak Marek","year":"2014","unstructured":"Marek Dvoroznak . 2014 . Interactive as-rigid-as-possible image deformation and registration . In Proceedings of the 18th Central European Seminar on Computer Graphics. Marek Dvoroznak. 2014. Interactive as-rigid-as-possible image deformation and registration. In Proceedings of the 18th Central European Seminar on Computer Graphics."},{"key":"e_1_2_2_18_1","doi-asserted-by":"crossref","unstructured":"R. Fourer D. M. Gay and B. Kernighan. 1989. Algorithms and model formulations in mathematical programming. Springer-Verlag New York Inc. New York Chapter AMPL: A Mathematical Programming Language 150--151. Retrieved from http:\/\/dl.acm.org\/citation.cfm?id&equals;107479.107491  R. Fourer D. M. Gay and B. Kernighan. 1989. Algorithms and model formulations in mathematical programming. Springer-Verlag New York Inc. New York Chapter AMPL: A Mathematical Programming Language 150--151. Retrieved from http:\/\/dl.acm.org\/citation.cfm?id&equals;107479.107491","DOI":"10.1007\/978-3-642-83724-1_12"},{"key":"e_1_2_2_19_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-84800-155-8_7"},{"key":"e_1_2_2_20_1","volume-title":"CVX: Matlab Software for Disciplined Convex Programming, version 2.1.","author":"Grant Michael","year":"2014","unstructured":"Michael Grant and Stephen Boyd . 2014 . CVX: Matlab Software for Disciplined Convex Programming, version 2.1. Retrieved from http:\/\/cvxr.com\/cvx. Michael Grant and Stephen Boyd. 2014. CVX: Matlab Software for Disciplined Convex Programming, version 2.1. Retrieved from http:\/\/cvxr.com\/cvx."},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1137\/050624935"},{"key":"e_1_2_2_22_1","doi-asserted-by":"publisher","DOI":"10.1137\/1.9780898717761"},{"key":"e_1_2_2_23_1","doi-asserted-by":"publisher","DOI":"10.1137\/S1064827594276552"},{"key":"e_1_2_2_24_1","first-page":"355","article-title":"Automatic differentiation: Techniques and applications. Lecture notes in computer science 120","volume":"62","author":"Grund F.","year":"1982","unstructured":"F. Grund . 1982 . Automatic differentiation: Techniques and applications. Lecture notes in computer science 120 . ZAMM 62 , 7 (1982), 355 -- 355 . DOI:https:\/\/doi.org\/10.1002\/zamm.19820620735 10.1002\/zamm.19820620735 F. Grund. 1982. Automatic differentiation: Techniques and applications. Lecture notes in computer science 120. ZAMM 62, 7 (1982), 355--355. DOI:https:\/\/doi.org\/10.1002\/zamm.19820620735","journal-title":"ZAMM"},{"key":"e_1_2_2_25_1","unstructured":"Ga\u00ebl Guennebaud Beno\u00eet Jacob and others. 2010. Eigen v3. Retrieved from http:\/\/eigen.tuxfamily.org.  Ga\u00ebl Guennebaud Beno\u00eet Jacob and others. 2010. Eigen v3. Retrieved from http:\/\/eigen.tuxfamily.org."},{"key":"e_1_2_2_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/1275808.1276512"},{"key":"e_1_2_2_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/2897824.2925875"},{"key":"e_1_2_2_29_1","doi-asserted-by":"publisher","DOI":"10.1016\/0004-3702(81)90024-2"},{"key":"e_1_2_2_30_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-46484-8_22"},{"key":"e_1_2_2_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/1138450.1138461"},{"key":"e_1_2_2_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/2866569"},{"key":"e_1_2_2_33_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jcp.2003.08.010"},{"key":"e_1_2_2_34_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICRA.2011.5979949"},{"key":"e_1_2_2_35_1","doi-asserted-by":"publisher","DOI":"10.1364\/JOSA.61.000001"},{"key":"e_1_2_2_36_1","doi-asserted-by":"publisher","DOI":"10.1090\/qam\/10666"},{"key":"e_1_2_2_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/2661229.2661258"},{"key":"e_1_2_2_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/1661412.1618521"},{"key":"e_1_2_2_39_1","doi-asserted-by":"publisher","DOI":"10.1137\/0111030"},{"key":"e_1_2_2_40_1","doi-asserted-by":"publisher","DOI":"10.1002\/nme.1620141104"},{"key":"e_1_2_2_41_1","article-title":"Live intrinsic video","volume":"35","author":"Meka Abhimitra","year":"2016","unstructured":"Abhimitra Meka , Michael Zollh\u00f6fer , Christian Richardt , and Christian Theobalt . 2016 . Live intrinsic video . ACM Trans. Graph. (Proceedings SIGGRAPH) 35 , 4 (2016). DOI:https:\/\/doi.org\/10.1145\/2897824.2925907 10.1145\/2897824.2925907 Abhimitra Meka, Michael Zollh\u00f6fer, Christian Richardt, and Christian Theobalt. 2016. Live intrinsic video. ACM Trans. Graph. (Proceedings SIGGRAPH) 35, 4 (2016). DOI:https:\/\/doi.org\/10.1145\/2897824.2925907","journal-title":"ACM Trans. Graph. (Proceedings SIGGRAPH)"},{"key":"e_1_2_2_42_1","volume-title":"Barr","author":"Meyer Mark","year":"2003","unstructured":"Mark Meyer , Mathieu Desbrun , Peter Schrder , and Alan H . Barr . 2003 . Discrete differential-geometry operators for triangulated 2-manifolds. In Visualization and Mathematics III, Hans-Christian Hege and Konrad Polthier (Eds.). Springer , Berlin, 35--57. DOI:https:\/\/doi.org\/10.1007\/978-3-662-05105-4_2 10.1007\/978-3-662-05105-4_2 Mark Meyer, Mathieu Desbrun, Peter Schrder, and Alan H. Barr. 2003. Discrete differential-geometry operators for triangulated 2-manifolds. In Visualization and Mathematics III, Hans-Christian Hege and Konrad Polthier (Eds.). Springer, Berlin, 35--57. DOI:https:\/\/doi.org\/10.1007\/978-3-662-05105-4_2"},{"key":"e_1_2_2_43_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0377-0427(00)00426-X"},{"key":"e_1_2_2_44_1","volume-title":"Numerical Optimization","author":"Nocedal Jorge","unstructured":"Jorge Nocedal and Stephen Wright . 2006a. Numerical Optimization . Springer Science 8 Business Media. Jorge Nocedal and Stephen Wright. 2006a. Numerical Optimization. Springer Science 8 Business Media."},{"key":"e_1_2_2_45_1","unstructured":"J. Nocedal and S. J. Wright. 2006b. Numerical Optimization (2nd ed.). Springer New York.  J. Nocedal and S. J. Wright. 2006b. Numerical Optimization (2nd ed.). Springer New York."},{"key":"e_1_2_2_46_1","unstructured":"NVIDIA 2012. CUDA CUSPARSE Library. NVIDIA.  NVIDIA 2012. CUDA CUSPARSE Library. NVIDIA."},{"key":"e_1_2_2_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/1201775.882269"},{"key":"e_1_2_2_48_1","doi-asserted-by":"publisher","DOI":"10.1145\/2185520.2185528"},{"key":"e_1_2_2_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/1141911.1141964"},{"key":"e_1_2_2_50_1","volume-title":"Proceedings of the Symposium on Geometry Processing","volume":"4","author":"Sorkine Olga","year":"2007","unstructured":"Olga Sorkine and Marc Alexa . 2007 . As-rigid-as-possible surface modeling . In Proceedings of the Symposium on Geometry Processing , Vol. 4 . Olga Sorkine and Marc Alexa. 2007. As-rigid-as-possible surface modeling. In Proceedings of the Symposium on Geometry Processing, Vol. 4."},{"key":"e_1_2_2_51_1","doi-asserted-by":"publisher","DOI":"10.1145\/1275808.1276478"},{"key":"e_1_2_2_52_1","unstructured":"SymPy Development Team. 2014. SymPy: Python Library for Symbolic Mathematics. Retrieved from http:\/\/www.sympy.org.  SymPy Development Team. 2014. SymPy: Python Library for Symbolic Mathematics. Retrieved from http:\/\/www.sympy.org."},{"key":"e_1_2_2_53_1","unstructured":"The MathWorks Inc. 2015. MATLAB. https:\/\/de.mathworks.com\/products\/matlab.html.  The MathWorks Inc. 2015. MATLAB. https:\/\/de.mathworks.com\/products\/matlab.html."},{"key":"e_1_2_2_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/2816795.2818056"},{"key":"e_1_2_2_55_1","doi-asserted-by":"publisher","DOI":"10.1145\/2929464.2929475"},{"key":"e_1_2_2_56_1","volume-title":"FaceVR: Real-time facial reenactment and eye gaze control in virtual reality. arXiv preprint arXiv:1610.03151","author":"Thies Justus","year":"2016","unstructured":"Justus Thies , Michael Zollh\u00f6fer , Marc Stamminger , Christian Theobalt , and Matthias Nie\u00dfner . 2016b. FaceVR: Real-time facial reenactment and eye gaze control in virtual reality. arXiv preprint arXiv:1610.03151 ( 2016 ). Justus Thies, Michael Zollh\u00f6fer, Marc Stamminger, Christian Theobalt, and Matthias Nie\u00dfner. 2016b. FaceVR: Real-time facial reenactment and eye gaze control in virtual reality. arXiv preprint arXiv:1610.03151 (2016)."},{"key":"e_1_2_2_58_1","volume-title":"Fitzgibbon","author":"Triggs Bill","year":"1999","unstructured":"Bill Triggs , Philip F. McLauchlan , Richard I. Hartley , and Andrew W . Fitzgibbon . 1999 . Bundle adjustment\u2014a modern synthesis. In Vision Algorithms: Theory and Practice. Springer , 298--372. Bill Triggs, Philip F. McLauchlan, Richard I. Hartley, and Andrew W. Fitzgibbon. 1999. Bundle adjustment\u2014a modern synthesis. In Vision Algorithms: Theory and Practice. Springer, 298--372."},{"key":"e_1_2_2_59_1","doi-asserted-by":"publisher","DOI":"10.1145\/1399504.1360696"},{"key":"e_1_2_2_60_1","doi-asserted-by":"publisher","DOI":"10.1145\/1618452.1618520"},{"key":"e_1_2_2_61_1","doi-asserted-by":"publisher","DOI":"10.1201\/b11644-8"},{"key":"e_1_2_2_62_1","volume-title":"Proceedings of the Symposium on Geometry Processing. Citeseer, 49--58","author":"Wand Michael","year":"2007","unstructured":"Michael Wand , Philipp Jenke , Qixing Huang , Martin Bokeloh , Leonidas Guibas , and Andreas Schilling . 2007 . Reconstruction of deforming geometry from time-varying point clouds . In Proceedings of the Symposium on Geometry Processing. Citeseer, 49--58 . Michael Wand, Philipp Jenke, Qixing Huang, Martin Bokeloh, Leonidas Guibas, and Andreas Schilling. 2007. Reconstruction of deforming geometry from time-varying point clouds. In Proceedings of the Symposium on Geometry Processing. Citeseer, 49--58."},{"key":"e_1_2_2_63_1","doi-asserted-by":"publisher","DOI":"10.1111\/j.1467-8659.2012.03227.x"},{"key":"e_1_2_2_64_1","volume-title":"Proceedings of the International Conference on Computer Vision Theory and Applications (VISAPP\u201913)","author":"Wefelscheid Cornelius","year":"2013","unstructured":"Cornelius Wefelscheid and Olaf Hellwich . 2013 . OpenOF: Framework for sparse non-linear least squares optimization on a GPU . In Proceedings of the International Conference on Computer Vision Theory and Applications (VISAPP\u201913) . Cornelius Wefelscheid and Olaf Hellwich. 2013. OpenOF: Framework for sparse non-linear least squares optimization on a GPU. In Proceedings of the International Conference on Computer Vision Theory and Applications (VISAPP\u201913)."},{"key":"e_1_2_2_65_1","unstructured":"Wolfram Research. 2000. Mathematica. (2000).  Wolfram Research. 2000. Mathematica. (2000)."},{"key":"e_1_2_2_66_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0334270000004604"},{"key":"e_1_2_2_67_1","doi-asserted-by":"publisher","DOI":"10.1109\/CVPR.2011.5995552"},{"key":"e_1_2_2_68_1","doi-asserted-by":"publisher","DOI":"10.1145\/2661229.2661232"},{"key":"e_1_2_2_69_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10915-016-0167-z"},{"key":"e_1_2_2_70_1","doi-asserted-by":"publisher","DOI":"10.1145\/2980179.2982403"},{"key":"e_1_2_2_71_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-10602-1_50"},{"key":"e_1_2_2_72_1","doi-asserted-by":"publisher","DOI":"10.1145\/2766887"},{"key":"e_1_2_2_73_1","doi-asserted-by":"publisher","DOI":"10.1145\/2601097.2601165"}],"container-title":["ACM Transactions on Graphics"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3132188","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3132188","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T02:13:56Z","timestamp":1750212836000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3132188"}},"subtitle":["A Domain Specific Language for Non-Linear Least Squares Optimization in Graphics and Imaging"],"short-title":[],"issued":{"date-parts":[[2017,10,11]]},"references-count":71,"journal-issue":{"issue":"5","published-print":{"date-parts":[[2017,10,31]]}},"alternative-id":["10.1145\/3132188"],"URL":"https:\/\/doi.org\/10.1145\/3132188","relation":{},"ISSN":["0730-0301","1557-7368"],"issn-type":[{"value":"0730-0301","type":"print"},{"value":"1557-7368","type":"electronic"}],"subject":[],"published":{"date-parts":[[2017,10,11]]},"assertion":[{"value":"2016-04-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2017-07-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2017-10-11","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}