{"id":"https://openalex.org/W3175004880","doi":"https://doi.org/10.1145/3459010","title":"KernelFaRer","display_name":"KernelFaRer","publication_year":2021,"publication_date":"2021-06-28","ids":{"openalex":"https://openalex.org/W3175004880","doi":"https://doi.org/10.1145/3459010","mag":"3175004880"},"language":"en","primary_location":{"id":"doi:10.1145/3459010","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3459010","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3459010","source":{"id":"https://openalex.org/S26056741","display_name":"ACM Transactions on Architecture and Code Optimization","issn_l":"1544-3566","issn":["1544-3566","1544-3973"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"ACM Transactions on Architecture and Code Optimization","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://dl.acm.org/doi/pdf/10.1145/3459010","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5090480187","display_name":"Jo\u00e3o P. L. de Carvalho","orcid":"https://orcid.org/0000-0002-3476-184X"},"institutions":[{"id":"https://openalex.org/I181391015","display_name":"Universidade Estadual de Campinas (UNICAMP)","ror":"https://ror.org/04wffgt70","country_code":"BR","type":"education","lineage":["https://openalex.org/I181391015"]}],"countries":["BR"],"is_corresponding":true,"raw_author_name":"Jo\u00e3o P. L. De Carvalho","raw_affiliation_strings":["University of Campinas (UNICAMP), Brazil"],"raw_orcid":"https://orcid.org/0000-0002-3476-184X","affiliations":[{"raw_affiliation_string":"University of Campinas (UNICAMP), Brazil","institution_ids":["https://openalex.org/I181391015"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5017764932","display_name":"Braedy Kuzma","orcid":"https://orcid.org/0000-0001-5819-1100"},"institutions":[{"id":"https://openalex.org/I154425047","display_name":"University of Alberta","ror":"https://ror.org/0160cpw27","country_code":"CA","type":"education","lineage":["https://openalex.org/I154425047"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Braedy Kuzma","raw_affiliation_strings":["University of Alberta, Canada"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Alberta, Canada","institution_ids":["https://openalex.org/I154425047"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5009484614","display_name":"Ivan Korostelev","orcid":"https://orcid.org/0000-0002-3451-1920"},"institutions":[{"id":"https://openalex.org/I154425047","display_name":"University of Alberta","ror":"https://ror.org/0160cpw27","country_code":"CA","type":"education","lineage":["https://openalex.org/I154425047"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Ivan Korostelev","raw_affiliation_strings":["University of Alberta, Canada"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Alberta, Canada","institution_ids":["https://openalex.org/I154425047"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5048554669","display_name":"Jos\u00e9 Nelson Amaral","orcid":"https://orcid.org/0000-0002-9943-1809"},"institutions":[{"id":"https://openalex.org/I154425047","display_name":"University of Alberta","ror":"https://ror.org/0160cpw27","country_code":"CA","type":"education","lineage":["https://openalex.org/I154425047"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Jos\u00e9 Nelson Amaral","raw_affiliation_strings":["University of Alberta, Canada"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Alberta, Canada","institution_ids":["https://openalex.org/I154425047"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5046232417","display_name":"Christopher Barton","orcid":"https://orcid.org/0000-0001-9823-7425"},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Christopher Barton","raw_affiliation_strings":["IBM Corporation, Canada"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"IBM Corporation, Canada","institution_ids":[]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5055326969","display_name":"Jos\u00e9 E. Moreira","orcid":"https://orcid.org/0000-0001-7029-6327"},"institutions":[{"id":"https://openalex.org/I1341412227","display_name":"IBM (United States)","ror":"https://ror.org/05hh8d621","country_code":"US","type":"company","lineage":["https://openalex.org/I1341412227"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Jos\u00e9 Moreira","raw_affiliation_strings":["IBM Corporation, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"IBM Corporation, USA","institution_ids":["https://openalex.org/I1341412227"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5067675731","display_name":"Guido Ara\u00fajo","orcid":"https://orcid.org/0000-0003-4869-5190"},"institutions":[{"id":"https://openalex.org/I181391015","display_name":"Universidade Estadual de Campinas (UNICAMP)","ror":"https://ror.org/04wffgt70","country_code":"BR","type":"education","lineage":["https://openalex.org/I181391015"]}],"countries":["BR"],"is_corresponding":false,"raw_author_name":"Guido Araujo","raw_affiliation_strings":["University of Campinas (UNICAMP), Brazil"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Campinas (UNICAMP), Brazil","institution_ids":["https://openalex.org/I181391015"]}]}],"institutions":[],"countries_distinct_count":3,"institutions_distinct_count":7,"corresponding_author_ids":["https://openalex.org/A5090480187"],"corresponding_institution_ids":["https://openalex.org/I181391015"],"apc_list":null,"apc_paid":null,"fwci":3.0649,"has_fulltext":true,"cited_by_count":19,"citation_normalized_percentile":{"value":0.91506975,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":96,"max":98},"biblio":{"volume":"18","issue":"3","first_page":"1","last_page":"22"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9998999834060669,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9998999834060669,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T11697","display_name":"Numerical Methods and Algorithms","score":0.9952999949455261,"subfield":{"id":"https://openalex.org/subfields/1703","display_name":"Computational Theory and Mathematics"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T11269","display_name":"Algorithms and Data Compression","score":0.9757999777793884,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8984818458557129},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.7479140162467957},{"id":"https://openalex.org/keywords/x86","display_name":"x86","score":0.7456990480422974},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.598760187625885},{"id":"https://openalex.org/keywords/source-code","display_name":"Source code","score":0.5019078254699707},{"id":"https://openalex.org/keywords/kernel","display_name":"Kernel (algebra)","score":0.46831780672073364},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.46731942892074585},{"id":"https://openalex.org/keywords/simd","display_name":"SIMD","score":0.4571007490158081},{"id":"https://openalex.org/keywords/linear-algebra","display_name":"Linear algebra","score":0.4507869482040405},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.4456101059913635},{"id":"https://openalex.org/keywords/overhead","display_name":"Overhead (engineering)","score":0.44033554196357727},{"id":"https://openalex.org/keywords/block","display_name":"Block (permutation group theory)","score":0.43723583221435547},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.24338015913963318}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8984818458557129},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.7479140162467957},{"id":"https://openalex.org/C170723468","wikidata":"https://www.wikidata.org/wiki/Q182933","display_name":"x86","level":3,"score":0.7456990480422974},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.598760187625885},{"id":"https://openalex.org/C43126263","wikidata":"https://www.wikidata.org/wiki/Q128751","display_name":"Source code","level":2,"score":0.5019078254699707},{"id":"https://openalex.org/C74193536","wikidata":"https://www.wikidata.org/wiki/Q574844","display_name":"Kernel (algebra)","level":2,"score":0.46831780672073364},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.46731942892074585},{"id":"https://openalex.org/C150552126","wikidata":"https://www.wikidata.org/wiki/Q339387","display_name":"SIMD","level":2,"score":0.4571007490158081},{"id":"https://openalex.org/C139352143","wikidata":"https://www.wikidata.org/wiki/Q82571","display_name":"Linear algebra","level":2,"score":0.4507869482040405},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.4456101059913635},{"id":"https://openalex.org/C2779960059","wikidata":"https://www.wikidata.org/wiki/Q7113681","display_name":"Overhead (engineering)","level":2,"score":0.44033554196357727},{"id":"https://openalex.org/C2777210771","wikidata":"https://www.wikidata.org/wiki/Q4927124","display_name":"Block (permutation group theory)","level":2,"score":0.43723583221435547},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.24338015913963318},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.0},{"id":"https://openalex.org/C114614502","wikidata":"https://www.wikidata.org/wiki/Q76592","display_name":"Combinatorics","level":1,"score":0.0},{"id":"https://openalex.org/C2524010","wikidata":"https://www.wikidata.org/wiki/Q8087","display_name":"Geometry","level":1,"score":0.0},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3459010","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3459010","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3459010","source":{"id":"https://openalex.org/S26056741","display_name":"ACM Transactions on Architecture and Code Optimization","issn_l":"1544-3566","issn":["1544-3566","1544-3973"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"ACM Transactions on Architecture and Code Optimization","raw_type":"journal-article"}],"best_oa_location":{"id":"doi:10.1145/3459010","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3459010","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3459010","source":{"id":"https://openalex.org/S26056741","display_name":"ACM Transactions on Architecture and Code Optimization","issn_l":"1544-3566","issn":["1544-3566","1544-3973"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"ACM Transactions on Architecture and Code Optimization","raw_type":"journal-article"},"sustainable_development_goals":[],"awards":[{"id":"https://openalex.org/G140068007","display_name":null,"funder_award_id":"2013/08293-7, 2016/15337-9, 2019/04536-9","funder_id":"https://openalex.org/F4320320997","funder_display_name":"Funda\u00e7\u00e3o de Amparo \u00e0 Pesquisa do Estado de S\u00e3o Paulo"}],"funders":[{"id":"https://openalex.org/F4320320997","display_name":"Funda\u00e7\u00e3o de Amparo \u00e0 Pesquisa do Estado de S\u00e3o Paulo","ror":"https://ror.org/02ddkpn78"}],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W3175004880.pdf","grobid_xml":"https://content.openalex.org/works/W3175004880.grobid-xml"},"referenced_works_count":32,"referenced_works":["https://openalex.org/W182691100","https://openalex.org/W1491178396","https://openalex.org/W1530262073","https://openalex.org/W1965682336","https://openalex.org/W1983157164","https://openalex.org/W1983487223","https://openalex.org/W1992200374","https://openalex.org/W1997186449","https://openalex.org/W2011156378","https://openalex.org/W2013901208","https://openalex.org/W2036853599","https://openalex.org/W2043275593","https://openalex.org/W2050733629","https://openalex.org/W2059696856","https://openalex.org/W2073061372","https://openalex.org/W2080592089","https://openalex.org/W2098688018","https://openalex.org/W2103964018","https://openalex.org/W2149381887","https://openalex.org/W2153185479","https://openalex.org/W2252007067","https://openalex.org/W2508318196","https://openalex.org/W2789599444","https://openalex.org/W2794066882","https://openalex.org/W2796645376","https://openalex.org/W2963743473","https://openalex.org/W2997238241","https://openalex.org/W3021133567","https://openalex.org/W3099929288","https://openalex.org/W4232675103","https://openalex.org/W4240467781","https://openalex.org/W4244520147"],"related_works":["https://openalex.org/W2129537883","https://openalex.org/W2111180768","https://openalex.org/W2911551207","https://openalex.org/W4225987401","https://openalex.org/W2162270818","https://openalex.org/W4236526691","https://openalex.org/W4226140811","https://openalex.org/W2003690377","https://openalex.org/W4312862090","https://openalex.org/W4226502243"],"abstract_inverted_index":{"Well-crafted":[0],"libraries":[1],"deliver":[2],"much":[3,162,170],"higher":[4],"performance":[5,209],"than":[6,165],"code":[7,19,33,216,227],"generated":[8],"by":[9,114,195],"sophisticated":[10],"application":[11,226],"programmers":[12],"using":[13],"advanced":[14],"optimizing":[15],"compilers.":[16],"When":[17],"a":[18,23,47,71,145,169,232],"pattern":[20,45,59,84],"for":[21,79,149],"which":[22],"well-tuned":[24],"library":[25,229],"implementation":[26],"exists":[27],"is":[28,41,112,143,161,175,231],"found":[29],"in":[30,54,82,102,138,159,178,208],"the":[31,37,44,50,55,66,83,103,179,219],"source":[32,85,215],"of":[34,65,110],"an":[35,97],"application,":[36],"highest":[38,220],"performing":[39],"solution":[40,74],"to":[42,49],"replace":[43],"with":[46,192,228],"call":[48,230],"library.":[51],"Idiom-recognition":[52],"solutions":[53],"past":[56],"either":[57],"required":[58],"matching":[60,115],"machinery":[61],"that":[62,75,210,224],"was":[63],"outside":[64],"compilation":[67,172,183],"framework":[68],"or":[69],"provided":[70],"very":[72],"brittle":[73],"would":[76],"fail":[77],"even":[78],"minor":[80],"variants":[81],"code.":[86],"This":[87],"article":[88],"introduces":[89],"Kernel":[90],"Find":[91],"&amp;":[92],"Replacer":[93],"(":[94],"KernelFaRer":[95,111,160,185],"),":[96],"idiom":[98,157],"recognizer":[99],"implemented":[100],"entirely":[101],"existing":[104,187],"LLVM":[105,182],"compiler":[106],"framework.":[107],"The":[108,156],"versatility":[109],"demonstrated":[113],"and":[116,126,133,141,152,174,189,204],"replacing":[117,225],"two":[118],"linear":[119],"algebra":[120],"idioms,":[121],"general":[122],"matrix-matrix":[123],"multiplication":[124],"(GEMM),":[125],"symmetric":[127],"rank-2k":[128],"update":[129],"(SYR2K).":[130],"Both":[131],"GEMM":[132,142,188],"SYR2K":[134,190],"are":[135],"used":[136,181],"extensively":[137],"scientific":[139],"computation,":[140],"also":[144],"central":[146],"building":[147],"block":[148],"deep":[150],"learning":[151],"computer":[153],"graphics":[154],"algorithms.":[155],"recognition":[158],"more":[163],"robust":[164],"alternative":[166],"solutions,":[167],"has":[168],"lower":[171],"overhead,":[173],"fully":[176],"integrated":[177],"broadly":[180],"tools.":[184],"replaces":[186],"idioms":[191],"computations":[193],"performed":[194],"BLAS,":[196],"Eigen,":[197],"MKL":[198],"(Intel\u2019s":[199],"x86),":[200],"ESSL":[201],"(IBM\u2019s":[202],"PowerPC),":[203],"BLIS":[205],"(AMD).":[206],"Gains":[207],"reach":[211],"2000\u00d7":[212],"over":[213],"hand-crafted":[214],"compiled":[217],"at":[218],"optimization":[221],"level":[222],"demonstrate":[223],"performant":[233],"solution.":[234]},"counts_by_year":[{"year":2026,"cited_by_count":1},{"year":2025,"cited_by_count":5},{"year":2024,"cited_by_count":5},{"year":2023,"cited_by_count":5},{"year":2022,"cited_by_count":3}],"updated_date":"2026-03-27T05:58:40.876381","created_date":"2021-07-05T00:00:00"}
