This file is indexed.

/usr/share/doc/python-brian-doc/docs/experimental-cuda.html is in python-brian-doc 1.3.1-1build1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
<!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" />
    
    <title>GPU/CUDA &mdash; Brian v1.3.1 documentation</title>
    <link rel="stylesheet" href="_static/default.css" type="text/css" />
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '',
        VERSION:     '1.3.1',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  false
      };
    </script>
    <script type="text/javascript" src="_static/jquery.js"></script>
    <script type="text/javascript" src="_static/underscore.js"></script>
    <script type="text/javascript" src="_static/doctools.js"></script>
    <link rel="top" title="Brian v1.3.1 documentation" href="index.html" />
    <link rel="up" title="Experimental features" href="experimental.html" />
    <link rel="next" title="Multilinear state updater" href="experimental-multilinearstateupdater.html" />
    <link rel="prev" title="Code generation" href="experimental-codegen.html" /> 
  </head>
  <body>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="experimental-multilinearstateupdater.html" title="Multilinear state updater"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="experimental-codegen.html" title="Code generation"
             accesskey="P">previous</a> |</li>
        <li><a href="index.html">Brian v1.3.1 documentation</a> &raquo;</li>
          <li><a href="experimental.html" accesskey="U">Experimental features</a> &raquo;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body">
            
  <div class="section" id="gpu-cuda">
<h1>GPU/CUDA<a class="headerlink" href="#gpu-cuda" title="Permalink to this headline"></a></h1>
<p>Brian has some experimental support for doing numerical integration only using
GPUs, using the <a class="reference external" href="http://mathema.tician.de/software/pycuda">PyCUDA package</a>.</p>
<p>Note that only numerical integration is done on the GPU, which means that
variables that can be altered on the CPU (via synapses or user operations) need
to be copied to and from the GPU each time step, as well as variables that are
used for thresholding and reset operations. This creates a memory bandwidth
bottleneck, which means that for the moment the GPU code is only useful for
complicated neuron models such as Hodgkin-Huxley type neurons (although in this
case it can lead to very substantial speed improvements).</p>
<dl class="class">
<dt id="brian.experimental.cuda.GPUNeuronGroup">
<em class="property">class </em><tt class="descclassname">brian.experimental.cuda.</tt><tt class="descname">GPUNeuronGroup</tt><big>(</big><em>N</em>, <em>model</em>, <em>threshold=None</em>, <em>reset=No reset</em>, <em>init=None</em>, <em>refractory=0.0 s</em>, <em>level=0</em>, <em>clock=None</em>, <em>order=1</em>, <em>implicit=False</em>, <em>unit_checking=True</em>, <em>max_delay=0.0 s</em>, <em>compile=False</em>, <em>freeze=False</em>, <em>method=None</em>, <em>precision='double'</em>, <em>maxblocksize=512</em>, <em>forcesync=False</em>, <em>pagelocked_mem=True</em>, <em>gpu_to_cpu_vars=None</em>, <em>cpu_to_gpu_vars=None</em><big>)</big><a class="headerlink" href="#brian.experimental.cuda.GPUNeuronGroup" title="Permalink to this definition"></a></dt>
<dd><p>Neuron group which performs numerical integration on the GPU.</p>
<div class="admonition warning">
<p class="first admonition-title">Warning</p>
<p class="last">This class is still experimental, not supported and subject to change
in future versions of Brian.</p>
</div>
<p>Initialised with arguments as for <tt class="xref py py-class docutils literal"><span class="pre">NeuronGroup</span></tt> and additionally:</p>
<dl class="docutils">
<dt><tt class="docutils literal"><span class="pre">precision='double'</span></tt></dt>
<dd>The GPU scalar precision to use, older models can only use
<tt class="docutils literal"><span class="pre">precision='float'</span></tt>.</dd>
<dt><tt class="docutils literal"><span class="pre">maxblocksize=512</span></tt></dt>
<dd>If GPU compilation fails, reduce this value.</dd>
<dt><tt class="docutils literal"><span class="pre">forcesync=False</span></tt></dt>
<dd>Whether or not to force copying of state variables to and from the
GPU each time step. This is slow, so it is better to specify precisely
which variables should be copied to and from using <tt class="docutils literal"><span class="pre">gpu_to_cpu_vars</span></tt>
and <tt class="docutils literal"><span class="pre">cpu_to_gpu_vars</span></tt>.</dd>
<dt><tt class="docutils literal"><span class="pre">pagelocked_mem=True</span></tt></dt>
<dd>Whether to store state variables in pagelocked memory on the CPU,
which makes copying data to/from the GPU twice as fast.</dd>
<dt><tt class="docutils literal"><span class="pre">cpu_to_gpu_vars=None</span></tt>, <tt class="docutils literal"><span class="pre">gpu_to_cpu_vars=None</span></tt></dt>
<dd>Which variables should be copied each time step from the CPU to the GPU
(before state update) and from the GPU to the CPU (after state update).</dd>
</dl>
<p>The point of the copying of variables to and from the GPU is that the GPU
maintains a separate memory from the CPU, and so changes made on either the
CPU or GPU won&#8217;t automatically be reflected in the other. Since only
numerical integration is done on the GPU, any state variable that is
modified by incoming synapses, for example, should be copied to and from
the GPU each time step. In addition, any variables used for thresholding
or resetting need to be appropriately copied (GPU-&gt;CPU for thresholding, and
both for resetting).</p>
</dd></dl>

</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar">
        <div class="sphinxsidebarwrapper">
            <p class="logo"><a href="index.html">
              <img class="logo" src="_static/brian-logo.png" alt="Logo"/>
            </a></p>
  <h4>Previous topic</h4>
  <p class="topless"><a href="experimental-codegen.html"
                        title="previous chapter">Code generation</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="experimental-multilinearstateupdater.html"
                        title="next chapter">Multilinear state updater</a></p>
<div id="searchbox" style="display: none">
  <h3>Quick search</h3>
    <form class="search" action="search.html" method="get">
      <input type="text" name="q" />
      <input type="submit" value="Go" />
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
    <p class="searchtip" style="font-size: 90%">
    Enter search terms or a module, class or function name.
    </p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="experimental-multilinearstateupdater.html" title="Multilinear state updater"
             >next</a> |</li>
        <li class="right" >
          <a href="experimental-codegen.html" title="Code generation"
             >previous</a> |</li>
        <li><a href="index.html">Brian v1.3.1 documentation</a> &raquo;</li>
          <li><a href="experimental.html" >Experimental features</a> &raquo;</li> 
      </ul>
    </div>
    <div class="footer">
        &copy; Copyright 2008, Romain Brette, Dan Goodman.
      Last updated on Feb 19, 2012.
      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.8.
    </div>
  </body>
</html>