-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathindex.html
More file actions
94 lines (87 loc) · 6.29 KB
/
index.html
File metadata and controls
94 lines (87 loc) · 6.29 KB
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
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Intel® ISPC - An open-source compiler for high-performance SIMD programming on CPU and GPU">
<link rel="icon" type="image/png" href="favicon.png">
<link rel="stylesheet" href="css/style.css">
<title>Intel® Implicit SPMD Program Compiler</title>
</head>
<body>
<div class="container">
<header class="site-header">
<nav class="main-nav">
<div class="nav-brand">
<h1>Intel® ISPC</h1>
</div>
<ul class="nav-menu">
<li class="nav-item active"><a href="index.html">Overview</a></li>
<li class="nav-item"><a href="features.html">Features</a></li>
<li class="nav-item"><a href="downloads.html">Downloads</a></li>
<li class="nav-item"><a href="documentation.html">Documentation</a></li>
<li class="nav-item"><a href="perf.html">Performance</a></li>
<li class="nav-item"><a href="contrib.html">Contributors</a></li>
</ul>
</nav>
</header>
<section class="hero">
<div class="hero-content">
<h1 class="hero-title">Intel® Implicit SPMD Program Compiler</h1>
<p class="hero-subtitle">An open-source compiler for high-performance SIMD programming on CPU and GPU</p>
<div class="hero-actions">
<a href="downloads.html" class="btn btn-primary">Get Started</a>
<a href="documentation.html" class="btn btn-secondary">Documentation</a>
</div>
</div>
</section>
<main class="main-content">
<div class="content-grid">
<article class="content-main">
<section class="overview-section">
<h2>What is ISPC?</h2>
<p><tt class="docutils literal">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 <em>program instances</em> 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>
</section>
<section class="performance-section">
<h2>Performance</h2>
<p><tt class="docutils literal">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 class="docutils literal">ispc</tt>, making it possible to write programs that achieve performance improvement that scales by both number of cores and vector unit size.</p>
</section>
<section class="principles-section">
<h2>Design Principles</h2>
<p>There are a few key principles in the design of <tt class="docutils literal">ispc</tt>:</p>
<ul class="principles-list">
<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 class="docutils literal">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>
</section>
<section class="availability-section">
<h2>Open Source & Availability</h2>
<p><tt class="docutils literal">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 class="docutils literal">ispc</tt> support is 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>
</section>
</article>
<aside class="sidebar">
<div class="sidebar-section">
<h3>Resources</h3>
<ul class="resource-links">
<li><a href="http://github.com/ispc/ispc">GitHub Repository</a></li>
<li><a href="https://github.com/ispc/ispc/discussions">Community Discussions</a></li>
<li><a href="http://github.com/ispc/ispc/issues">Report Issues</a></li>
<li><a href="https://github.com/orgs/ispc/projects/1">Release Planning</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">Documentation Wiki</a></li>
</ul>
</div>
</aside>
</div>
</main>
<footer class="site-footer">
<div class="footer-content">
<p>© <strong>Intel Corporation</strong> | <a href="http://validator.w3.org/check?uri=referer">Valid HTML</a> | <a href="http://jigsaw.w3.org/css-validator/check/referer">Valid CSS</a></p>
</div>
</footer>
</div>
</body>
</html>