{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,16]],"date-time":"2026-06-16T10:24:34Z","timestamp":1781605474132,"version":"3.54.5"},"reference-count":26,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2017,7,24]],"date-time":"2017-07-24T00:00:00Z","timestamp":1500854400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","award":["CCF-1320112, ACI-1148125\/1340293, and ACI-1550493"],"award-info":[{"award-number":["CCF-1320112, ACI-1148125\/1340293, and ACI-1550493"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Math. Softw."],"published-print":{"date-parts":[[2018,3,31]]},"abstract":"<jats:p>\n            In this article, we explore the implementation of complex matrix multiplication. We begin by briefly identifying various challenges associated with the conventional approach, which calls for a carefully written kernel that implements complex arithmetic at the lowest possible level (i.e., assembly language). We then set out to develop a method of complex matrix multiplication that avoids the need for complex kernels altogether. This constraint promotes code reuse and portability within libraries such as Basic Linear Algebra Subprograms and BLAS-Like Library Instantiation Software (BLIS) and allows kernel developers to focus their efforts on fewer and simpler kernels. We develop two alternative approaches\u2014one based on the 3\n            <jats:sc>m<\/jats:sc>\n            method and one that reflects the classic 4\n            <jats:sc>m<\/jats:sc>\n            formulation\u2014each with multiple variants, all of which rely only on real matrix multiplication kernels. We discuss the performance characteristics of these \u201cinduced\u201d methods and observe that the assembly-level method actually resides along the 4\n            <jats:sc>m<\/jats:sc>\n            spectrum of algorithmic variants. Implementations are developed within the BLIS framework, and testing on modern hardware confirms that while the less numerically stable 3\n            <jats:sc>m<\/jats:sc>\n            method yields the fastest runtimes, the more stable (and thus widely applicable) 4\n            <jats:sc>m<\/jats:sc>\n            method\u2019s performance is somewhat limited due to implementation challenges that appear inherent in nature.\n          <\/jats:p>","DOI":"10.1145\/3086466","type":"journal-article","created":{"date-parts":[[2017,7,24]],"date-time":"2017-07-24T12:52:34Z","timestamp":1500900754000},"page":"1-36","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":20,"title":["Implementing High-performance Complex Matrix Multiplication via the 3m and 4m Methods"],"prefix":"10.1145","volume":"44","author":[{"given":"Field G.","family":"Van Zee","sequence":"first","affiliation":[{"name":"The University of Texas at Austin, Austin, TX"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Tyler M.","family":"Smith","sequence":"additional","affiliation":[{"name":"The University of Texas at Austin, Austin, TX"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2017,7,24]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.5555\/1964238.1964254"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1088\/1742-6596\/180\/1\/012037"},{"key":"e_1_2_1_3_1","unstructured":"AMD. 2012. AMD Core Math Library. Retrieved from http:\/\/developer.amd.com\/tools\/cpu\/acml\/pages\/default.aspx.  AMD. 2012. AMD Core Math Library. Retrieved from http:\/\/developer.amd.com\/tools\/cpu\/acml\/pages\/default.aspx."},{"key":"e_1_2_1_4_1","doi-asserted-by":"crossref","unstructured":"E. Anderson Z. Bai C. Bischof L. S. Blackford J. Demmel Jack J. Dongarra J. Du Croz S. Hammarling A. Greenbaum A. McKenney and D. Sorensen. 1999. LAPACK Users\u2019 Guide (3rd ed.). Society for Industrial and Applied Mathematics Philadelphia PA.  E. Anderson Z. Bai C. Bischof L. S. Blackford J. Demmel Jack J. Dongarra J. Du Croz S. Hammarling A. Greenbaum A. McKenney and D. Sorensen. 1999. LAPACK Users\u2019 Guide (3rd ed.). Society for Industrial and Applied Mathematics Philadelphia PA.","DOI":"10.1137\/1.9780898719604"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1109\/FMPC.1992.234898"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/131766.131769"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1137\/1.9781611971811"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/77626.79170"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1002\/cpe.728"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/1356052.1356053"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/1377603.1377607"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/98267.98290"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1137\/0613043"},{"key":"e_1_2_1_14_1","unstructured":"IBM. 2012. Engineering and Scientific Subroutine Library. Retrieved from http:\/\/www.ibm.com\/systems\/software\/essl\/. (2012).  IBM. 2012. Engineering and Scientific Subroutine Library. Retrieved from http:\/\/www.ibm.com\/systems\/software\/essl\/. (2012)."},{"key":"e_1_2_1_15_1","unstructured":"Intel. 2014. Math Kernel Library. Retrieved from http:\/\/developer.intel.com\/software\/products\/mkl\/. (2014).  Intel. 2014. Math Kernel Library. Retrieved from http:\/\/developer.intel.com\/software\/products\/mkl\/. (2014)."},{"key":"e_1_2_1_16_1","volume-title":"The Art of Computer Programming, Volume 2: Seminumerical Algorithms","author":"Knuth Donald E.","edition":"2"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/2925987"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/2427023.2427030"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1109\/IPDPS.2014.110"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF02165411"},{"key":"e_1_2_1_21_1","unstructured":"Top500. 2015. Top 500 Supercomputer Sites. Retrieved from http:\/\/www.top500.org\/.  Top500. 2015. Top 500 Supercomputer Sites. Retrieved from http:\/\/www.top500.org\/."},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1109\/MCSE.2009.207"},{"key":"e_1_2_1_23_1","first-page":"2","article-title":"The BLIS framework: Experiments in portability","volume":"42","author":"Van Zee Field G.","year":"2016","journal-title":"ACM Trans. Math. Soft."},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/2764454"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1109\/SC.1998.10004"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICPADS.2012.97"}],"container-title":["ACM Transactions on Mathematical Software"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3086466","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3086466","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3086466","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T03:37:01Z","timestamp":1750217821000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3086466"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2017,7,24]]},"references-count":26,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2018,3,31]]}},"alternative-id":["10.1145\/3086466"],"URL":"https:\/\/doi.org\/10.1145\/3086466","relation":{},"ISSN":["0098-3500","1557-7295"],"issn-type":[{"value":"0098-3500","type":"print"},{"value":"1557-7295","type":"electronic"}],"subject":[],"published":{"date-parts":[[2017,7,24]]},"assertion":[{"value":"2015-05-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2017-04-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2017-07-24","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}