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
 <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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </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>  </td><th colspan="3"><b>AMD GPUs</b> </th></tr>
<tr>
<th>Compute Device </th><th>float</th><th>double </th><td>  </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>  </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>  </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>  </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>  </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>  </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>  </td><td>Radeon HD 6XXX </td><td>ok </td><td>- </td></tr>
<tr>
<td>GeForce GTS 250 </td><td>ok </td><td>- </td><td>  </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>  </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>  </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>  </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>  </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>  </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>  </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>  </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>  </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>  </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>  </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>  </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>  </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>  </td><td>FirePro V8XXX </td><td>ok </td><td>ok </td></tr>
<tr>
<td>Tesla C10XX </td><td>ok </td><td>ok </td><td>  </td><td>FirePro V9XXX </td><td>ok </td><td>ok </td></tr>
<tr>
<td>Tesla C20XX </td><td>ok </td><td>ok </td><td>  </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>
|