forked from cnuernber/dtype-next
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtech.v3.compute.html
More file actions
3 lines (3 loc) · 16 KB
/
tech.v3.compute.html
File metadata and controls
3 lines (3 loc) · 16 KB
1
2
3
<!DOCTYPE html PUBLIC ""
"">
<html><head><meta charset="UTF-8" /><title>tech.v3.compute documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="highlight/solarized-light.css" /><script type="text/javascript" src="highlight/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a> with <a href="https://github.com/xsc/codox-theme-rdash">RDash UI</a> theme</h2><h1><a href="index.html"><span class="project-title"><span class="project-name">dtype-next</span> <span class="project-version">6.00-alpha-19</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="buffered-image.html"><div class="inner"><span>Buffered Image Support</span></div></a></li><li class="depth-1 "><a href="cheatsheet.html"><div class="inner"><span>Cheatsheet</span></div></a></li><li class="depth-1 "><a href="datatype-to-dtype-next.html"><div class="inner"><span>Why dtype-next?</span></div></a></li><li class="depth-1 "><a href="dimensions-bytecode-gen.html"><div class="inner"><span>Dimensions and Bytecode Generation</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>tech</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>v3</span></div></div></li><li class="depth-3 branch current"><a href="tech.v3.compute.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>compute</span></div></a></li><li class="depth-3"><a href="tech.v3.datatype.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>datatype</span></div></a></li><li class="depth-4 branch"><a href="tech.v3.datatype.argops.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>argops</span></div></a></li><li class="depth-4 branch"><a href="tech.v3.datatype.bitmap.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>bitmap</span></div></a></li><li class="depth-4 branch"><a href="tech.v3.datatype.datetime.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>datetime</span></div></a></li><li class="depth-4 branch"><a href="tech.v3.datatype.errors.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>errors</span></div></a></li><li class="depth-4 branch"><a href="tech.v3.datatype.functional.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>functional</span></div></a></li><li class="depth-4 branch"><a href="tech.v3.datatype.jna.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>jna</span></div></a></li><li class="depth-4 branch"><a href="tech.v3.datatype.list.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>list</span></div></a></li><li class="depth-4 branch"><a href="tech.v3.datatype.mmap.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>mmap</span></div></a></li><li class="depth-4 branch"><a href="tech.v3.datatype.native-buffer.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>native-buffer</span></div></a></li><li class="depth-4 branch"><a href="tech.v3.datatype.nippy.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>nippy</span></div></a></li><li class="depth-4 branch"><a href="tech.v3.datatype.packing.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>packing</span></div></a></li><li class="depth-4"><a href="tech.v3.datatype.reductions.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>reductions</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree" style="top: -393px;"><span class="top" style="height: 402px;"></span><span class="bottom"></span></span><span>libs</span></div></div></li><li class="depth-4 branch"><a href="tech.v3.libs.buffered-image.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>buffered-image</span></div></a></li><li class="depth-4"><a href="tech.v3.libs.neanderthal.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>neanderthal</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>parallel</span></div></div></li><li class="depth-4"><a href="tech.v3.parallel.for.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>for</span></div></a></li><li class="depth-3"><a href="tech.v3.tensor.html"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>tensor</span></div></a></li><li class="depth-4 branch"><a href="tech.v3.tensor.color-gradients.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>color-gradients</span></div></a></li><li class="depth-4"><a href="tech.v3.tensor.dimensions.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>dimensions</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="tech.v3.compute.html#var--.3Edevice"><div class="inner"><span>->device</span></div></a></li><li class="depth-1"><a href="tech.v3.compute.html#var--.3Edriver"><div class="inner"><span>->driver</span></div></a></li><li class="depth-1"><a href="tech.v3.compute.html#var--.3Estream"><div class="inner"><span>->stream</span></div></a></li><li class="depth-1"><a href="tech.v3.compute.html#var-allocate-device-buffer"><div class="inner"><span>allocate-device-buffer</span></div></a></li><li class="depth-1"><a href="tech.v3.compute.html#var-allocate-host-buffer"><div class="inner"><span>allocate-host-buffer</span></div></a></li><li class="depth-1"><a href="tech.v3.compute.html#var-copy-device-.3Edevice"><div class="inner"><span>copy-device->device</span></div></a></li><li class="depth-1"><a href="tech.v3.compute.html#var-create-stream"><div class="inner"><span>create-stream</span></div></a></li><li class="depth-1"><a href="tech.v3.compute.html#var-default-device"><div class="inner"><span>default-device</span></div></a></li><li class="depth-1"><a href="tech.v3.compute.html#var-default-stream"><div class="inner"><span>default-stream</span></div></a></li><li class="depth-1"><a href="tech.v3.compute.html#var-device-.3Edevice-copy-compatible.3F"><div class="inner"><span>device->device-copy-compatible?</span></div></a></li><li class="depth-1"><a href="tech.v3.compute.html#var-driver"><div class="inner"><span>driver</span></div></a></li><li class="depth-1"><a href="tech.v3.compute.html#var-driver-name"><div class="inner"><span>driver-name</span></div></a></li><li class="depth-1"><a href="tech.v3.compute.html#var-driver-names"><div class="inner"><span>driver-names</span></div></a></li><li class="depth-1"><a href="tech.v3.compute.html#var-get-devices"><div class="inner"><span>get-devices</span></div></a></li><li class="depth-1"><a href="tech.v3.compute.html#var-supports-create-stream.3F"><div class="inner"><span>supports-create-stream?</span></div></a></li><li class="depth-1"><a href="tech.v3.compute.html#var-sync-with-host"><div class="inner"><span>sync-with-host</span></div></a></li><li class="depth-1"><a href="tech.v3.compute.html#var-sync-with-stream"><div class="inner"><span>sync-with-stream</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">tech.v3.compute</h1><div class="doc"><div class="markdown"><p>Lightweight framework for computing on remote devices such as GPU’s</p></div></div><div class="public anchor" id="var--.3Edevice"><h3>->device</h3><div class="usage"><code>(->device item)</code></div><div class="doc"><div class="markdown"><p>Generically get a device from a thing</p></div></div><div class="src-link"><a href="https://github.com/cnuernber/dtype-next/blob/master/src/tech/v3/compute.clj#L27">view source</a></div></div><div class="public anchor" id="var--.3Edriver"><h3>->driver</h3><div class="usage"><code>(->driver item)</code></div><div class="doc"><div class="markdown"><p>Generically get a driver from a thing</p></div></div><div class="src-link"><a href="https://github.com/cnuernber/dtype-next/blob/master/src/tech/v3/compute.clj#L21">view source</a></div></div><div class="public anchor" id="var--.3Estream"><h3>->stream</h3><div class="usage"><code>(->stream item)</code></div><div class="doc"><div class="markdown"><p>Generically get a stream from a thing</p></div></div><div class="src-link"><a href="https://github.com/cnuernber/dtype-next/blob/master/src/tech/v3/compute.clj#L33">view source</a></div></div><div class="public anchor" id="var-allocate-device-buffer"><h3>allocate-device-buffer</h3><div class="usage"><code>(allocate-device-buffer device elem-count elem-type & {:as options})</code></div><div class="doc"><div class="markdown"><p>Allocate a device buffer. This is the generic unit of data storage used for computation. No options at this time.</p></div></div><div class="src-link"><a href="https://github.com/cnuernber/dtype-next/blob/master/src/tech/v3/compute.clj#L87">view source</a></div></div><div class="public anchor" id="var-allocate-host-buffer"><h3>allocate-host-buffer</h3><div class="usage"><code>(allocate-host-buffer driver elem-count elem-type & {:keys [usage-type], :or {usage-type :one-time}, :as options})</code></div><div class="doc"><div class="markdown"><p>Allocate a host buffer. Usage type gives a hint as to the intended usage of the buffer.</p></div></div><div class="src-link"><a href="https://github.com/cnuernber/dtype-next/blob/master/src/tech/v3/compute.clj#L57">view source</a></div></div><div class="public anchor" id="var-copy-device-.3Edevice"><h3>copy-device->device</h3><div class="usage"><code>(copy-device->device dev-a dev-a-off dev-b dev-b-off elem-count & {:keys [stream], :as options})</code></div><div class="doc"><div class="markdown"><p>Copy from one device to another. If no stream is provided then the destination buffer’s device’s default stream is used.</p></div></div><div class="src-link"><a href="https://github.com/cnuernber/dtype-next/blob/master/src/tech/v3/compute.clj#L117">view source</a></div></div><div class="public anchor" id="var-create-stream"><h3>create-stream</h3><div class="usage"><code>(create-stream device)</code></div><div class="doc"><div class="markdown"><p>Create a stream of execution. Streams are indepenent threads of execution. They can be synchronized with each other and the main thread using events.</p></div></div><div class="src-link"><a href="https://github.com/cnuernber/dtype-next/blob/master/src/tech/v3/compute.clj#L80">view source</a></div></div><div class="public anchor" id="var-default-device"><h3>default-device</h3><div class="usage"><code>(default-device driver)</code></div><div class="doc"><div class="markdown"><p>Get the default device for this driver.</p></div></div><div class="src-link"><a href="https://github.com/cnuernber/dtype-next/blob/master/src/tech/v3/compute.clj#L51">view source</a></div></div><div class="public anchor" id="var-default-stream"><h3>default-stream</h3><div class="usage"><code>(default-stream device)</code></div><div class="doc"><div class="markdown"><p>All devices must have a default stream whether they support create or not.</p></div></div><div class="src-link"><a href="https://github.com/cnuernber/dtype-next/blob/master/src/tech/v3/compute.clj#L75">view source</a></div></div><div class="public anchor" id="var-device-.3Edevice-copy-compatible.3F"><h3>device->device-copy-compatible?</h3><div class="usage"><code>(device->device-copy-compatible? src-device dst-device)</code></div><div class="doc"><div class="markdown"><p>Is a copy directly from a device to a device supported?</p></div></div><div class="src-link"><a href="https://github.com/cnuernber/dtype-next/blob/master/src/tech/v3/compute.clj#L111">view source</a></div></div><div class="public anchor" id="var-driver"><h3>driver</h3><div class="usage"><code>(driver driver-name)</code></div><div class="doc"><div class="markdown"><p>Do a registry lookup to find a driver by its name.</p></div></div><div class="src-link"><a href="https://github.com/cnuernber/dtype-next/blob/master/src/tech/v3/compute.clj#L15">view source</a></div></div><div class="public anchor" id="var-driver-name"><h3>driver-name</h3><div class="usage"><code>(driver-name driver)</code></div><div class="doc"><div class="markdown"><p>Get the name of the driver</p></div></div><div class="src-link"><a href="https://github.com/cnuernber/dtype-next/blob/master/src/tech/v3/compute.clj#L39">view source</a></div></div><div class="public anchor" id="var-driver-names"><h3>driver-names</h3><div class="usage"><code>(driver-names)</code></div><div class="doc"><div class="markdown"><p>Get the names of the registered drivers.</p></div></div><div class="src-link"><a href="https://github.com/cnuernber/dtype-next/blob/master/src/tech/v3/compute.clj#L9">view source</a></div></div><div class="public anchor" id="var-get-devices"><h3>get-devices</h3><div class="usage"><code>(get-devices driver)</code></div><div class="doc"><div class="markdown"><p>Get the list of devices on this machine supported by this driver.</p></div></div><div class="src-link"><a href="https://github.com/cnuernber/dtype-next/blob/master/src/tech/v3/compute.clj#L45">view source</a></div></div><div class="public anchor" id="var-supports-create-stream.3F"><h3>supports-create-stream?</h3><div class="usage"><code>(supports-create-stream? device)</code></div><div class="doc"><div class="markdown"><p>Does this device support create-stream?</p></div></div><div class="src-link"><a href="https://github.com/cnuernber/dtype-next/blob/master/src/tech/v3/compute.clj#L70">view source</a></div></div><div class="public anchor" id="var-sync-with-host"><h3>sync-with-host</h3><div class="usage"><code>(sync-with-host stream)</code><code>(sync-with-host)</code></div><div class="doc"><div class="markdown"><p>Block host until stream’s queue is finished executing</p></div></div><div class="src-link"><a href="https://github.com/cnuernber/dtype-next/blob/master/src/tech/v3/compute.clj#L126">view source</a></div></div><div class="public anchor" id="var-sync-with-stream"><h3>sync-with-stream</h3><div class="usage"><code>(sync-with-stream src-stream dst-stream & [options])</code></div><div class="doc"><div class="markdown"><p>Create an event in src-stream’s execution queue, then have dst stream wait on that event. This allows dst-stream to ensure src-stream has reached a certain point of execution before continuing. Both streams must be of the same driver.</p></div></div><div class="src-link"><a href="https://github.com/cnuernber/dtype-next/blob/master/src/tech/v3/compute.clj#L133">view source</a></div></div></div></body></html>