-
Notifications
You must be signed in to change notification settings - Fork 12
/
index.html
129 lines (127 loc) · 6.29 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="icon" type="image/png" href="favicon.png" />
<link rel="stylesheet" href="css/style.css" type="text/css" media="all" />
<!-- WIN IE Style Sheets -->
<!--[if IE]>
<![if gte IE 5.5]>
<![if gte IE 7]><link rel="stylesheet"
type="text/css" media="screen,projection"
href="css/ie.css" />
<![endif]>
<![if lt IE 7]><link rel="stylesheet"
type="text/css" media="screen,projection"
href="css/ie.css" />
<![endif]>
<![endif]>
<![if lt IE 5.5]>
<link rel="stylesheet"
type="text/css" media="screen,projection"
href="css/ie.css" />
<![endif]>
<![endif]-->
<title>Intel® Implicit SPMD Program Compiler</title>
</head>
<body>
<div id="wrap">
<div id="wrap2">
<div id="header">
<h1 id="logo">Intel® Implicit SPMD Program Compiler</h1>
<div id="slogan">An open-source compiler for high-performance SIMD programming on
the CPU and GPU</div>
</div>
<div id="nav">
<div id="nbar">
<ul>
<li id="selected"><a href="index.html">Overview</a></li>
<li><a href="features.html">Features</a></li>
<li><a href="downloads.html">Downloads</a></li>
<li><a href="documentation.html">Documentation</a></li>
<li><a href="perf.html">Performance</a></li>
<li><a href="contrib.html">Contributors</a></li>
</ul>
</div>
</div>
<div id="content-wrap">
<div id="sidebar">
<div class="widgetspace">
<h1>Resources</h1>
<ul class="menu">
<li><a href="http://github.com/ispc/ispc">GitHub page</a></li>
<li><a href="https://github.com/ispc/ispc/discussions">Discussions on GitHub</a></li>
<li><a href="http://github.com/ispc/ispc/issues">Issues on Github</a></li>
<li><a href="https://github.com/orgs/ispc/projects/1">Release planning board</a></li>
<li><a href="https://github.com/ispc/ispc/blob/main/CONTRIBUTING.md">Contributing guide</a></li>
<li><a href="http://github.com/ispc/ispc/wiki">Wiki on Github</a></li>
</ul>
</div>
</div>
<div id="content">
<h1>Overview</h1>
<p><tt>ispc</tt> is a compiler for a variant of the C
programming language, with extensions for "single program, multiple
data" <a href="http://en.wikipedia.org/wiki/SPMD">(SPMD)</a>
programming. Under the SPMD model, the programmer writes a
program that generally appears to be a regular serial program,
though the execution model is actually that a number
of <i>program instances</i> execute in parallel on the hardware.
(See the <a href="documentation.html">ispc documentation</a> for
more details and examples that illustrate this concept.)</p>
<p><tt>ispc</tt> compiles a C-based SPMD programming language to
run on the SIMD units of CPUs and GPUs; it frequently provides
a 3x or more speedup on architectures with 4-wide vector SSE units
and 5x-6x on architectures with 8-wide AVX vector units, without
any of the difficulty of writing intrinsics code. Parallelization
across multiple cores is also supported by <tt>ispc</tt>, making it
possible to write programs that achieve performance improvement
that scales by both number of cores and vector unit size.
</p>
<p>There are a few key principles in the design of <tt>ispc</tt>:
<ul>
<li>To build a small set of extensions to the C language that
would deliver excellent performance to performance-oriented
programmers who want to run SPMD programs on the CPU and GPU.</li>
<li>To provide a thin abstraction layer between the programmer
and the hardware—in particular, to have an execution and
data model where the programmer can cleanly reason about the
mapping of their source program to compiled assembly language
and the underlying hardware.</li>
<li>To make it possible to harness the computational power of SIMD
vector units without the extremely low-programmer-productivity
activity of directly writing intrinsics.</li>
<li>To explore opportunities from close coupling between C/C++
application code and SPMD <tt>ispc</tt> code running on the
same processor—to have lightweight function calls between
the two languages and to share data directly via pointers without
copying or reformatting.</li>
</ul>
<p><tt>ispc</tt> is an open source compiler with a
<a href="https://github.com/ispc/ispc/blob/main/LICENSE.txt">BSD
license</a>. It uses the remarkable
<a href="http://llvm.org">LLVM Compiler Infrastructure</a> for
back-end code generation and optimization and
is <a href="http://github.com/ispc/ispc/">hosted on
github</a>. It supports Windows, macOS, and
Linux as a host operating system and also capable to target Android, iOS,
and PS4/PS5. It currently supports multiple flavours of x86 (SSE2,
SSE4, AVX, AVX2, and AVX512), ARM (NEON), and Intel® GPU architectures
(Gen9 and Xe family).
</p>
<p><tt>ispc</tt> support is provided provided through <a href="https://github.com/ispc/ispc/issues">GitHub Issues</a>
and <a href="https://github.com/ispc/ispc/discussions">GitHub Discussions</a> user forum.
</p>
</p>
</div>
</div>
<div class="clearfix"></div>
<div id="footer"> © <strong>Intel Corporation</strong> | Valid <a href="http://validator.w3.org/check?uri=referer">XHTML</a> | <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a> | ClearBlue by: <a href="http://www.themebin.com/">ThemeBin</a>
<!-- Please Do Not remove this link, thank u -->
</div>
</div>
<!-- End Wrap2 -->
</div>
<!-- End Wrap -->
</body>
</html>