Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
H
hpvm-release
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
llvm
hpvm-release
Commits
893ff539
Commit
893ff539
authored
9 years ago
by
Maria Kotsifakou
Browse files
Options
Downloads
Patches
Plain Diff
Edited Abstract.
parent
301bd344
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
paper/Abstract.tex
+15
-13
15 additions, 13 deletions
paper/Abstract.tex
with
15 additions
and
13 deletions
paper/Abstract.tex
+
15
−
13
View file @
893ff539
...
...
@@ -6,19 +6,21 @@ compute elements on a single chip. These computing elements use different
parallelism models, instruction sets, and memory hierarchy, making it difficult
to achieve performance and code portability on heterogeneous systems.
Application programming for such systems would be greatly simplified if a single
object code representation can be used to generate code for different compute
units in a heteroegenous system. Previous efforts such as OpenCL, CUDA, SPIR and
PTX aimed to address the source and object code portability challenges of such systems focus
heavily on GPUs, thus making them insufficent for today's SoCs.
object code representation could be used to generate code for different compute
units in a heteroegenous system. Previous efforts aiming to address the source
and object code portability challenges arising in such systems, such as OpenCL,
CUDA, SPIR, PTX and HSAIL focus heavily on GPUs, which makes them insufficent
for today's SoCs.
We propose VISC, a framework for programming heterogeneous systems. In this
paper, we focus on the crux of VISC, a novel virtual ISA design, which adds
dataflow graph abstractions to LLVM IR, to capture diverse forms of parallelism
models. We also present a compilation strategy to generate code for AVX, PTX and
X86 backends from single virtual ISA representation of a program. Through a set
of experiments we show that code generated for CPUs and GPUs, from single
virtual ISA representation, achieves par performance (within 1 to 1.6x) with
hand-tuned code
\todo
{
What numbers to quote here?
}
. We further argue that the
virtual ISA abstractions are also suited for capturing pipeline and streaming
paralleism.
paper we focus on the crux of VISC, a novel virtual ISA design which adds
dataflow graph abstractions to LLVM IR, to capture the diverse forms of
parallelism models exposed by today's SoCs. We also present a compilation
strategy to generate code for AVX, PTX and X86 backends from single virtual ISA
representation of a program. Through a set of experiments we show that code
generated for CPUs and GPUs from single virtual ISA representation
achieves performance (within 1 to 1.6x) with hand-tuned code
\todo
{
What numbers to quote here?
}
. We further demonstrate that these virtual
ISA abstractions are also suited for capturing pipelining and streaming
parallelism.
\end{abstract}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment