High level programming abstractions for leveraging hierarchical memories with micro-core architectures
Micro-core architectures combine many low memory, low power computing cores together in a single package. These are attractive for use as accelerators but due to limited on-chip memory and multiple levels of memory hierarchy, the way in which programmers offload kernels needs to be carefully conside...
Gespeichert in:
Veröffentlicht in: | arXiv.org 2020-10 |
---|---|
Hauptverfasser: | , |
Format: | Artikel |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
container_end_page | |
---|---|
container_issue | |
container_start_page | |
container_title | arXiv.org |
container_volume | |
creator | Jamieson, Maurice Brown, Nick |
description | Micro-core architectures combine many low memory, low power computing cores together in a single package. These are attractive for use as accelerators but due to limited on-chip memory and multiple levels of memory hierarchy, the way in which programmers offload kernels needs to be carefully considered. In this paper we use Python as a vehicle for exploring the semantics and abstractions of higher level programming languages to support the offloading of computational kernels to these devices. By moving to a pass by reference model, along with leveraging memory kinds, we demonstrate the ability to easily and efficiently take advantage of multiple levels in the memory hierarchy, even ones that are not directly accessible to the micro-cores. Using a machine learning benchmark, we perform experiments on both Epiphany-III and MicroBlaze based micro-cores, demonstrating the ability to compute with data sets of arbitrarily large size. To provide context of our results, we explore the performance and power efficiency of these technologies, demonstrating that whilst these two micro-core technologies are competitive within their own embedded class of hardware, there is still a way to go to reach HPC class GPUs. |
doi_str_mv | 10.48550/arxiv.2010.01548 |
format | Article |
fullrecord | <record><control><sourceid>proquest_arxiv</sourceid><recordid>TN_cdi_arxiv_primary_2010_01548</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>2448764455</sourcerecordid><originalsourceid>FETCH-LOGICAL-a525-ee169b4786245d87a73b3f6c1022c1d482f65888a3c46a23198ecd2bc0e1e0e73</originalsourceid><addsrcrecordid>eNotkE1PwzAMhiMkJKaxH8CJSJw7Euej2RFNwJAmcdm9SlO3zdQuI-kG_Hu6jpMtv48s-yHkgbOlNEqxZxt__HkJbBwwrqS5ITMQgmdGAtyRRUp7xhjoHJQSM1JvfNPSDs_Y0WMMTbR97w8NtWUaonWDD4dE6xAnJNrmkrV-7KJrvbMd7bEP0WOi335oae9dDJkLEelEDOiGU8R0T25r2yVc_Nc52b297tabbPv5_rF-2WZWgcoQuV6VMjcapKpMbnNRilo7zgAcr6SBWitjjBVOaguCrwy6CkrHkCPDXMzJ43XtJKE4Rt_b-FtcZBSTjJF4uhLjs18nTEOxD6d4GG8qQEqTaylHL3_cMGO6</addsrcrecordid><sourcetype>Open Access Repository</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>2448764455</pqid></control><display><type>article</type><title>High level programming abstractions for leveraging hierarchical memories with micro-core architectures</title><source>arXiv.org</source><source>Free E- Journals</source><creator>Jamieson, Maurice ; Brown, Nick</creator><creatorcontrib>Jamieson, Maurice ; Brown, Nick</creatorcontrib><description>Micro-core architectures combine many low memory, low power computing cores together in a single package. These are attractive for use as accelerators but due to limited on-chip memory and multiple levels of memory hierarchy, the way in which programmers offload kernels needs to be carefully considered. In this paper we use Python as a vehicle for exploring the semantics and abstractions of higher level programming languages to support the offloading of computational kernels to these devices. By moving to a pass by reference model, along with leveraging memory kinds, we demonstrate the ability to easily and efficiently take advantage of multiple levels in the memory hierarchy, even ones that are not directly accessible to the micro-cores. Using a machine learning benchmark, we perform experiments on both Epiphany-III and MicroBlaze based micro-cores, demonstrating the ability to compute with data sets of arbitrarily large size. To provide context of our results, we explore the performance and power efficiency of these technologies, demonstrating that whilst these two micro-core technologies are competitive within their own embedded class of hardware, there is still a way to go to reach HPC class GPUs.</description><identifier>EISSN: 2331-8422</identifier><identifier>DOI: 10.48550/arxiv.2010.01548</identifier><language>eng</language><publisher>Ithaca: Cornell University Library, arXiv.org</publisher><subject>Accelerators ; Computer Science - Distributed, Parallel, and Cluster Computing ; Computer Science - Programming Languages ; Kernels ; Machine learning ; Power efficiency ; Power management ; Programming languages ; Semantics</subject><ispartof>arXiv.org, 2020-10</ispartof><rights>2020. This work is published under http://arxiv.org/licenses/nonexclusive-distrib/1.0/ (the “License”). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License.</rights><rights>http://arxiv.org/licenses/nonexclusive-distrib/1.0</rights><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>228,230,780,784,885,27925</link.rule.ids><backlink>$$Uhttps://doi.org/10.48550/arXiv.2010.01548$$DView paper in arXiv$$Hfree_for_read</backlink><backlink>$$Uhttps://doi.org/10.1016/j.jpdc.2019.11.011$$DView published paper (Access to full text may be restricted)$$Hfree_for_read</backlink></links><search><creatorcontrib>Jamieson, Maurice</creatorcontrib><creatorcontrib>Brown, Nick</creatorcontrib><title>High level programming abstractions for leveraging hierarchical memories with micro-core architectures</title><title>arXiv.org</title><description>Micro-core architectures combine many low memory, low power computing cores together in a single package. These are attractive for use as accelerators but due to limited on-chip memory and multiple levels of memory hierarchy, the way in which programmers offload kernels needs to be carefully considered. In this paper we use Python as a vehicle for exploring the semantics and abstractions of higher level programming languages to support the offloading of computational kernels to these devices. By moving to a pass by reference model, along with leveraging memory kinds, we demonstrate the ability to easily and efficiently take advantage of multiple levels in the memory hierarchy, even ones that are not directly accessible to the micro-cores. Using a machine learning benchmark, we perform experiments on both Epiphany-III and MicroBlaze based micro-cores, demonstrating the ability to compute with data sets of arbitrarily large size. To provide context of our results, we explore the performance and power efficiency of these technologies, demonstrating that whilst these two micro-core technologies are competitive within their own embedded class of hardware, there is still a way to go to reach HPC class GPUs.</description><subject>Accelerators</subject><subject>Computer Science - Distributed, Parallel, and Cluster Computing</subject><subject>Computer Science - Programming Languages</subject><subject>Kernels</subject><subject>Machine learning</subject><subject>Power efficiency</subject><subject>Power management</subject><subject>Programming languages</subject><subject>Semantics</subject><issn>2331-8422</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2020</creationdate><recordtype>article</recordtype><sourceid>ABUWG</sourceid><sourceid>AFKRA</sourceid><sourceid>AZQEC</sourceid><sourceid>BENPR</sourceid><sourceid>CCPQU</sourceid><sourceid>DWQXO</sourceid><sourceid>GOX</sourceid><recordid>eNotkE1PwzAMhiMkJKaxH8CJSJw7Euej2RFNwJAmcdm9SlO3zdQuI-kG_Hu6jpMtv48s-yHkgbOlNEqxZxt__HkJbBwwrqS5ITMQgmdGAtyRRUp7xhjoHJQSM1JvfNPSDs_Y0WMMTbR97w8NtWUaonWDD4dE6xAnJNrmkrV-7KJrvbMd7bEP0WOi335oae9dDJkLEelEDOiGU8R0T25r2yVc_Nc52b297tabbPv5_rF-2WZWgcoQuV6VMjcapKpMbnNRilo7zgAcr6SBWitjjBVOaguCrwy6CkrHkCPDXMzJ43XtJKE4Rt_b-FtcZBSTjJF4uhLjs18nTEOxD6d4GG8qQEqTaylHL3_cMGO6</recordid><startdate>20201004</startdate><enddate>20201004</enddate><creator>Jamieson, Maurice</creator><creator>Brown, Nick</creator><general>Cornell University Library, arXiv.org</general><scope>8FE</scope><scope>8FG</scope><scope>ABJCF</scope><scope>ABUWG</scope><scope>AFKRA</scope><scope>AZQEC</scope><scope>BENPR</scope><scope>BGLVJ</scope><scope>CCPQU</scope><scope>DWQXO</scope><scope>HCIFZ</scope><scope>L6V</scope><scope>M7S</scope><scope>PIMPY</scope><scope>PQEST</scope><scope>PQQKQ</scope><scope>PQUKI</scope><scope>PRINS</scope><scope>PTHSS</scope><scope>AKY</scope><scope>GOX</scope></search><sort><creationdate>20201004</creationdate><title>High level programming abstractions for leveraging hierarchical memories with micro-core architectures</title><author>Jamieson, Maurice ; Brown, Nick</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-a525-ee169b4786245d87a73b3f6c1022c1d482f65888a3c46a23198ecd2bc0e1e0e73</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2020</creationdate><topic>Accelerators</topic><topic>Computer Science - Distributed, Parallel, and Cluster Computing</topic><topic>Computer Science - Programming Languages</topic><topic>Kernels</topic><topic>Machine learning</topic><topic>Power efficiency</topic><topic>Power management</topic><topic>Programming languages</topic><topic>Semantics</topic><toplevel>online_resources</toplevel><creatorcontrib>Jamieson, Maurice</creatorcontrib><creatorcontrib>Brown, Nick</creatorcontrib><collection>ProQuest SciTech Collection</collection><collection>ProQuest Technology Collection</collection><collection>Materials Science & Engineering Collection</collection><collection>ProQuest Central (Alumni Edition)</collection><collection>ProQuest Central UK/Ireland</collection><collection>ProQuest Central Essentials</collection><collection>ProQuest Central</collection><collection>Technology Collection</collection><collection>ProQuest One Community College</collection><collection>ProQuest Central Korea</collection><collection>SciTech Premium Collection</collection><collection>ProQuest Engineering Collection</collection><collection>Engineering Database</collection><collection>Access via ProQuest (Open Access)</collection><collection>ProQuest One Academic Eastern Edition (DO NOT USE)</collection><collection>ProQuest One Academic</collection><collection>ProQuest One Academic UKI Edition</collection><collection>ProQuest Central China</collection><collection>Engineering Collection</collection><collection>arXiv Computer Science</collection><collection>arXiv.org</collection><jtitle>arXiv.org</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Jamieson, Maurice</au><au>Brown, Nick</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>High level programming abstractions for leveraging hierarchical memories with micro-core architectures</atitle><jtitle>arXiv.org</jtitle><date>2020-10-04</date><risdate>2020</risdate><eissn>2331-8422</eissn><abstract>Micro-core architectures combine many low memory, low power computing cores together in a single package. These are attractive for use as accelerators but due to limited on-chip memory and multiple levels of memory hierarchy, the way in which programmers offload kernels needs to be carefully considered. In this paper we use Python as a vehicle for exploring the semantics and abstractions of higher level programming languages to support the offloading of computational kernels to these devices. By moving to a pass by reference model, along with leveraging memory kinds, we demonstrate the ability to easily and efficiently take advantage of multiple levels in the memory hierarchy, even ones that are not directly accessible to the micro-cores. Using a machine learning benchmark, we perform experiments on both Epiphany-III and MicroBlaze based micro-cores, demonstrating the ability to compute with data sets of arbitrarily large size. To provide context of our results, we explore the performance and power efficiency of these technologies, demonstrating that whilst these two micro-core technologies are competitive within their own embedded class of hardware, there is still a way to go to reach HPC class GPUs.</abstract><cop>Ithaca</cop><pub>Cornell University Library, arXiv.org</pub><doi>10.48550/arxiv.2010.01548</doi><oa>free_for_read</oa></addata></record> |
fulltext | fulltext |
identifier | EISSN: 2331-8422 |
ispartof | arXiv.org, 2020-10 |
issn | 2331-8422 |
language | eng |
recordid | cdi_arxiv_primary_2010_01548 |
source | arXiv.org; Free E- Journals |
subjects | Accelerators Computer Science - Distributed, Parallel, and Cluster Computing Computer Science - Programming Languages Kernels Machine learning Power efficiency Power management Programming languages Semantics |
title | High level programming abstractions for leveraging hierarchical memories with micro-core architectures |
url | https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2024-12-26T15%3A44%3A14IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_arxiv&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=High%20level%20programming%20abstractions%20for%20leveraging%20hierarchical%20memories%20with%20micro-core%20architectures&rft.jtitle=arXiv.org&rft.au=Jamieson,%20Maurice&rft.date=2020-10-04&rft.eissn=2331-8422&rft_id=info:doi/10.48550/arxiv.2010.01548&rft_dat=%3Cproquest_arxiv%3E2448764455%3C/proquest_arxiv%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=2448764455&rft_id=info:pmid/&rfr_iscdi=true |