File: manual-introduction.html

package info (click to toggle)
viennacl 1.7.1%2Bdfsg1-6
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, sid, trixie
  • size: 114,428 kB
  • sloc: sh: 454,206; cpp: 109,088; ansic: 2,103; perl: 104; makefile: 22
file content (169 lines) | stat: -rw-r--r-- 11,930 bytes parent folder | download | duplicates (3)
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
<!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/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>ViennaCL - The Vienna Computing Library: Introduction</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">ViennaCL - The Vienna Computing Library
   &#160;<span id="projectnumber">1.7.1</span>
   </div>
   <div id="projectbrief">Free open-source GPU-accelerated linear algebra and solver library.</div>
  </td>
   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
</td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('manual-introduction.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">Introduction </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>The Vienna Computing Library (ViennaCL) is a scientific computing library written in C++. It provides simple, high-level access to the vast computing resources available on parallel architectures such as GPUs and multi-core CPUs by using either a host based computing backend, an OpenCL computing backend, or CUDA. The primary focus is on common linear algebra operations (BLAS levels 1, 2 and 3) and the solution of large sparse systems of equations by means of iterative methods. The following iterative solvers are currently implemented (confer for example to the book of Y.~Saad <a class="el" href="citelist.html#CITEREF_saad-iterative-solution">[26]</a> ):</p>
<ul>
<li>Conjugate Gradient (CG)</li>
<li>Stabilized BiConjugate Gradient (BiCGStab)</li>
<li>Generalized Minimum Residual (GMRES)</li>
</ul>
<p>A number of preconditioners is also provided in order to improve convergence of these solvers, see <a class="el" href="manual-algorithms.html">chapter on algorithms</a>.</p>
<p>The solvers and some preconditioners can also be used with different libraries due to their generic implementation. Currently it is possible to use the solvers and some preconditioners directly with types from the uBLAS library, which is part of Boost <a class="el" href="citelist.html#CITEREF_boost">[6]</a> . The iterative solvers can directly be used with Armadillo <a class="el" href="citelist.html#CITEREF_armadillo">[1]</a>, Eigen <a class="el" href="citelist.html#CITEREF_eigen">[11]</a>, and MTL 4 <a class="el" href="citelist.html#CITEREF_mtl4">[22]</a>.</p>
<p>Under the hood, ViennaCL uses a unified layer to access CUDA <a class="el" href="citelist.html#CITEREF_nvidiacuda">[23]</a>, OpenCL <a class="el" href="citelist.html#CITEREF_khronoscl">[18]</a>, and/or OpenMP <a class="el" href="citelist.html#CITEREF_openmp">[25]</a> for accessing and executing code on compute devices. Therefore, ViennaCL is not tailored to products from a particular vendor and can be used on many different platforms. At present, ViennaCL is known to work on all current CPUs and modern GPUs from NVIDIA and AMD (see table below), CPUs using either the AMD Accelerated Parallel Processing (APP) SDK (formerly ATI Stream SDK) or the Intel OpenCL SDK, and Intels MIC platform (Xeon Phi). Double precision arithmetic on GPUs is only possible if provided in hardware by the respective device. There is no double precision emulation in software in ViennaCL.</p>
<p><a class="anchor" id="manual-introduction-hardware-table"></a></p>
<center> <table class="doxtable">
<tr>
<th colspan="3">NVIDIA GPUs </th><td>&#160; </td><th colspan="3"><b>AMD GPUs</b> </th></tr>
<tr>
<th>Compute Device </th><th>float</th><th>double </th><td>&#160; </td><th>Compute Device </th><th>float</th><th>double </th></tr>
<tr>
<td>GeForce 86XX GT/GSO </td><td>ok </td><td>-  </td><td>&#160; </td><td>Radeon HD 4XXX </td><td>ok </td><td>-  </td></tr>
<tr>
<td>GeForce 88XX GTX/GTS </td><td>ok </td><td>-  </td><td>&#160; </td><td>Radeon HD 48XX </td><td>ok </td><td>ok  </td></tr>
<tr>
<td>GeForce 96XX GT/GSO </td><td>ok </td><td>-  </td><td>&#160; </td><td>Radeon HD 5XXX </td><td>ok </td><td>-  </td></tr>
<tr>
<td>GeForce 98XX GTX/GTS </td><td>ok </td><td>-  </td><td>&#160; </td><td>Radeon HD 58XX </td><td>ok </td><td>ok  </td></tr>
<tr>
<td>GeForce GT 230 </td><td>ok </td><td>-  </td><td>&#160; </td><td>Radeon HD 59XX </td><td>ok </td><td>ok  </td></tr>
<tr>
<td>GeForce GT(S) 240 </td><td>ok </td><td>-  </td><td>&#160; </td><td>Radeon HD 6XXX </td><td>ok </td><td>-  </td></tr>
<tr>
<td>GeForce GTS 250 </td><td>ok </td><td>-  </td><td>&#160; </td><td>Radeon HD 69XX </td><td>ok </td><td>ok  </td></tr>
<tr>
<td>GeForce GTX 260 </td><td>ok </td><td>ok  </td><td>&#160; </td><td>Radeon HD 7XXX </td><td>ok </td><td>-  </td></tr>
<tr>
<td>GeForce GTX 275 </td><td>ok </td><td>ok  </td><td>&#160; </td><td>Radeon HD 77XX </td><td>ok </td><td>ok  </td></tr>
<tr>
<td>GeForce GTX 280 </td><td>ok </td><td>ok  </td><td>&#160; </td><td>Radeon HD 78XX </td><td>ok </td><td>ok  </td></tr>
<tr>
<td>GeForce GTX 285 </td><td>ok </td><td>ok  </td><td>&#160; </td><td>Radeon HD 79XX </td><td>ok </td><td>ok  </td></tr>
<tr>
<td>GeForce GTX 4XX </td><td>ok </td><td>ok  </td><td>&#160; </td><td>Radeon HD 8350 </td><td>ok </td><td>-  </td></tr>
<tr>
<td>GeForce GTX 5XX </td><td>ok </td><td>ok  </td><td>&#160; </td><td>Radeon HD 84XX </td><td>ok </td><td>-  </td></tr>
<tr>
<td>GeForce GTX 6XX </td><td>ok </td><td>ok  </td><td>&#160; </td><td>Radeon HD 8XXX </td><td>ok </td><td>ok  </td></tr>
<tr>
<td>GeForce GTX 7XX </td><td>ok </td><td>ok  </td><td>&#160; </td><td>Radeon R5 2XX </td><td>ok </td><td>-  </td></tr>
<tr>
<td>GeForce GTX 9XX </td><td>ok </td><td>ok  </td><td>&#160; </td><td>Radeon R7 2XX </td><td>ok </td><td>ok  </td></tr>
<tr>
<td>Quadro FX 46XX </td><td>ok </td><td>-  </td><td>&#160; </td><td>Radeon R9 2XX </td><td>ok </td><td>ok  </td></tr>
<tr>
<td>Quadro FX 48XX </td><td>ok </td><td>ok  </td><td>&#160; </td><td>Radeon RX 3XX </td><td>ok </td><td>ok  </td></tr>
<tr>
<td>Quadro FX 56XX </td><td>ok </td><td>-  </td><td>&#160; </td><td>FirePro V7XXX </td><td>ok </td><td>ok  </td></tr>
<tr>
<td>Quadro FX 58XX </td><td>ok </td><td>ok  </td><td>&#160; </td><td>FirePro V8XXX </td><td>ok </td><td>ok  </td></tr>
<tr>
<td>Tesla C10XX </td><td>ok </td><td>ok  </td><td>&#160; </td><td>FirePro V9XXX </td><td>ok </td><td>ok  </td></tr>
<tr>
<td>Tesla C20XX </td><td>ok </td><td>ok  </td><td>&#160; </td><td>FirePro WXXXX </td><td>ok </td><td>ok  </td></tr>
<tr>
<td>Tesla K20 </td><td>ok </td><td>ok  </td></tr>
</table>
<p><b>Available arithmetics in ViennaCL provided by selected GPUs. Letter 'X' is used as a placeholder in numbers to denote multiple GPUs from the same series. Make sure you use recent GPU drivers, as there are some known bugs affecting ViennaCL in older drivers.</b> </center><p>For additional details of a look at the <a href="https://en.wikipedia.org/wiki/List_of_Nvidia_graphics_processing_units">Wikipedia list of NVIDIA GPUs</a> and the <a href="https://en.wikipedia.org/wiki/List_of_AMD_graphics_processing_units">Wikipedia list of AMD GPUs</a>. </p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated on Wed Jan 20 2016 22:32:44 for ViennaCL - The Vienna Computing Library by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
  </ul>
</div>
</body>
</html>