Abstract:Many-core hardware is targeted specifically at obtaining high performance, but reaching high performance is often challenging because hardware-specific details have to be taken into account. Although there are many programming systems that try to alleviate many-core programming, some providing a high-level language, others providing a low-level language for control, none of these systems have a clear and systematic methodology as a foundation. In this article, we propose stepwise-refinement for performance: a … Show more
“…Current approaches for GPU programming are to make a program at a highly abstract level and transform it in a stepwise fashion to an optimal GPU program [17]. Other approaches are to extend languages with notation for array processing tasks that can be sparked off to the GPU.…”
Section: Related Workmentioning
confidence: 99%
“…A list is either empty (Nil()), or a natural number followed by a list (Cons). The functions Merge and Merge2 merge two sorted lists into one sorted list (rewrite rules are given at lines [14][15][16][17][18][19]. The functions Even(L) and Odd(L), with L a direct subterm of type List, will evaluate to a List that contains only the elements located at even and odd positions in L, respectively.…”
Section: Definition 2 (Substitution)mentioning
confidence: 99%
“…This kernel is described at lines 14-22. In this kernel, the indices stored in each term term[tid] are updated using the keyIndices array (lines [16][17][18][19][20][21]. At line 21, the flags of each term are restored.…”
Section: Garbage Collection For Term Rewritingmentioning
“…Current approaches for GPU programming are to make a program at a highly abstract level and transform it in a stepwise fashion to an optimal GPU program [17]. Other approaches are to extend languages with notation for array processing tasks that can be sparked off to the GPU.…”
Section: Related Workmentioning
confidence: 99%
“…A list is either empty (Nil()), or a natural number followed by a list (Cons). The functions Merge and Merge2 merge two sorted lists into one sorted list (rewrite rules are given at lines [14][15][16][17][18][19]. The functions Even(L) and Odd(L), with L a direct subterm of type List, will evaluate to a List that contains only the elements located at even and odd positions in L, respectively.…”
Section: Definition 2 (Substitution)mentioning
confidence: 99%
“…This kernel is described at lines 14-22. In this kernel, the indices stored in each term term[tid] are updated using the keyIndices array (lines [16][17][18][19][20][21]. At line 21, the flags of each term are restored.…”
Section: Garbage Collection For Term Rewritingmentioning
“…The Many-Core Levels (MCL) framework, oriented to different kinds of many-core devices, was built by Hijma et al as an implementation of their stepwise-refinement for performance methodology [26]. It is composed of the Many-Core Programming Language (MCPL), which is an embedded language to write kernels, and a compiler able to improve these kernels with optimizations with different levels of abstraction.…”
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.