blob: 603909834deb62a5afb7d78418859aa952d8952d [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_252) on Thu Jun 18 13:32:47 CEST 2020 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GPUObject (SystemDS 2.0.0-SNAPSHOT API)</title>
<meta name="date" content="2020-06-18">
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="GPUObject (SystemDS 2.0.0-SNAPSHOT API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":9,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":9,"i38":10,"i39":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/GPUObject.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUMemoryManager.EvictionPolicyBasedComparator.html" title="class in org.apache.sysds.runtime.instructions.gpu.context"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/JCudaKernels.html" title="class in org.apache.sysds.runtime.instructions.gpu.context"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html" target="_top">Frames</a></li>
<li><a href="GPUObject.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.sysds.runtime.instructions.gpu.context</div>
<h2 title="Class GPUObject" class="title">Class GPUObject</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.sysds.runtime.instructions.gpu.context.GPUObject</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">GPUObject</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block">Handle to a matrix block on the GPU</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#dirty">dirty</a></span></code>
<div class="block">whether the block attached to this <a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUContext.html" title="class in org.apache.sysds.runtime.instructions.gpu.context"><code>GPUContext</code></a> is dirty on the device and needs to be copied back to host</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#isSparse">isSparse</a></span></code>
<div class="block">Whether this block is in sparse format</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html?is-external=true" title="class or interface in java.util.concurrent.atomic">LongAdder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#readLocks">readLocks</a></span></code>
<div class="block">number of read locks on this object (this GPUObject is being used in a current instruction)</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#writeLock">writeLock</a></span></code>
<div class="block">whether write lock on this object (this GPUObject is being used in a current instruction)</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#acquireDeviceModifyDense--">acquireDeviceModifyDense</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#acquireDeviceModifySparse--">acquireDeviceModifySparse</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#acquireDeviceRead-java.lang.String-">acquireDeviceRead</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;opcode)</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#acquireHostRead-java.lang.String-">acquireHostRead</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;instName)</code>
<div class="block">if the data is allocated on the GPU and is dirty, it is copied back to the host memory</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#addReadLock--">addReadLock</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#addWriteLock--">addWriteLock</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#allocateAndFillDense-double-">allocateAndFillDense</a></span>(double&nbsp;v)</code>
<div class="block">Allocates a dense matrix of size obtained from the attached matrix metadata
and fills it up with a single value</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#allocateSparseAndEmpty--">allocateSparseAndEmpty</a></span>()</code>
<div class="block">Allocates a sparse and empty <a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html" title="class in org.apache.sysds.runtime.instructions.gpu.context"><code>GPUObject</code></a>
This is the result of operations that are both non zero matrices.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#clearData-java.lang.String-boolean-">clearData</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;opcode,
boolean&nbsp;eager)</code>
<div class="block">Clears the data associated with this <a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html" title="class in org.apache.sysds.runtime.instructions.gpu.context"><code>GPUObject</code></a> instance</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#clearDensePointer--">clearDensePointer</a></span>()</code>
<div class="block">Removes the dense pointer and potential soft reference</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#clone--">clone</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/CSRPointer.html" title="class in org.apache.sysds.runtime.instructions.gpu.context">CSRPointer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#columnMajorDenseToRowMajorSparse-org.apache.sysds.runtime.instructions.gpu.context.GPUContext-jcuda.jcusparse.cusparseHandle-jcuda.Pointer-int-int-">columnMajorDenseToRowMajorSparse</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUContext.html" title="class in org.apache.sysds.runtime.instructions.gpu.context">GPUContext</a>&nbsp;gCtx,
jcuda.jcusparse.cusparseHandle&nbsp;cusparseHandle,
jcuda.Pointer&nbsp;densePtr,
int&nbsp;rows,
int&nbsp;cols)</code>
<div class="block">Convenience method to convert a CSR matrix to a dense matrix on the GPU
Since the allocated matrix is temporary, bookkeeping is not updated.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#copyFromDeviceToHost-java.lang.String-boolean-boolean-">copyFromDeviceToHost</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;instName,
boolean&nbsp;isEviction,
boolean&nbsp;eagerDelete)</code>
<div class="block">Copies the data from device to host.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#denseColumnMajorToRowMajor--">denseColumnMajorToRowMajor</a></span>()</code>
<div class="block">Convenience method.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#denseRowMajorToColumnMajor--">denseRowMajorToColumnMajor</a></span>()</code>
<div class="block">Convenience method.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#denseToSparse--">denseToSparse</a></span>()</code>
<div class="block">Converts this GPUObject from dense to sparse format.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>jcuda.Pointer</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#getDensePointer--">getDensePointer</a></span>()</code>
<div class="block">Pointer to dense matrix</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/CSRPointer.html" title="class in org.apache.sysds.runtime.instructions.gpu.context">CSRPointer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#getJcudaSparseMatrixPtr--">getJcudaSparseMatrixPtr</a></span>()</code>
<div class="block">Pointer to sparse matrix</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#getNnz-java.lang.String-boolean-">getNnz</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;instName,
boolean&nbsp;recomputeDenseNNZ)</code>
<div class="block">Being allocated is a prerequisite for computing nnz.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>protected long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#getSizeOnDevice--">getSizeOnDevice</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/CSRPointer.html" title="class in org.apache.sysds.runtime.instructions.gpu.context">CSRPointer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#getSparseMatrixCudaPointer--">getSparseMatrixCudaPointer</a></span>()</code>
<div class="block">Convenience method to directly examine the Sparse matrix on GPU</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#isAllocated--">isAllocated</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#isDensePointerNull--">isDensePointerNull</a></span>()</code>
<div class="block">Checks if the dense pointer is null</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#isDirty--">isDirty</a></span>()</code>
<div class="block">Whether this block is dirty on the GPU</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#isLocked--">isLocked</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#isSparse--">isSparse</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#isSparseAndEmpty--">isSparseAndEmpty</a></span>()</code>
<div class="block">If this <a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html" title="class in org.apache.sysds.runtime.instructions.gpu.context"><code>GPUObject</code></a> is sparse and empty
Being allocated is a prerequisite to being sparse and empty.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#releaseInput--">releaseInput</a></span>()</code>
<div class="block">Releases input allocated on GPU</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#releaseOutput--">releaseOutput</a></span>()</code>
<div class="block">releases output allocated on GPU</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#releaseReadLock--">releaseReadLock</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#releaseWriteLock--">releaseWriteLock</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#resetReadWriteLock--">resetReadWriteLock</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#setDensePointer-jcuda.Pointer-">setDensePointer</a></span>(jcuda.Pointer&nbsp;densePtr)</code>
<div class="block">Convenience method to directly set the dense matrix pointer on GPU</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#setSparseMatrixCudaPointer-org.apache.sysds.runtime.instructions.gpu.context.CSRPointer-">setSparseMatrixCudaPointer</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/CSRPointer.html" title="class in org.apache.sysds.runtime.instructions.gpu.context">CSRPointer</a>&nbsp;sparseMatrixPtr)</code>
<div class="block">Convenience method to directly set the sparse matrix on GPU
Needed for operations like cusparseDcsrgemm(cusparseHandle, int, int, int, int, int, cusparseMatDescr, int, Pointer, Pointer, Pointer, cusparseMatDescr, int, Pointer, Pointer, Pointer, cusparseMatDescr, Pointer, Pointer, Pointer)</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#sparseToColumnMajorDense--">sparseToColumnMajorDense</a></span>()</code>
<div class="block">More efficient method to convert sparse to dense but returns dense in column major format</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#sparseToDense--">sparseToDense</a></span>()</code>
<div class="block">Convert sparse to dense (Performs transpose, use sparseToColumnMajorDense if the kernel can deal with column major format)</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#sparseToDense-java.lang.String-">sparseToDense</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;instructionName)</code>
<div class="block">Convert sparse to dense (Performs transpose, use sparseToColumnMajorDense if the kernel can deal with column major format)
Also records per instruction invokation of sparseToDense.</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#toIntExact-long-">toIntExact</a></span>(long&nbsp;l)</code>&nbsp;</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#toString--">toString</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>static jcuda.Pointer</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html#transpose-org.apache.sysds.runtime.instructions.gpu.context.GPUContext-jcuda.Pointer-int-int-int-int-">transpose</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUContext.html" title="class in org.apache.sysds.runtime.instructions.gpu.context">GPUContext</a>&nbsp;gCtx,
jcuda.Pointer&nbsp;densePtr,
int&nbsp;m,
int&nbsp;n,
int&nbsp;lda,
int&nbsp;ldc)</code>
<div class="block">Transposes a dense matrix on the GPU by calling the cublasDgeam operation</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="dirty">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dirty</h4>
<pre>protected&nbsp;boolean dirty</pre>
<div class="block">whether the block attached to this <a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUContext.html" title="class in org.apache.sysds.runtime.instructions.gpu.context"><code>GPUContext</code></a> is dirty on the device and needs to be copied back to host</div>
</li>
</ul>
<a name="readLocks">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readLocks</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html?is-external=true" title="class or interface in java.util.concurrent.atomic">LongAdder</a> readLocks</pre>
<div class="block">number of read locks on this object (this GPUObject is being used in a current instruction)</div>
</li>
</ul>
<a name="writeLock">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>writeLock</h4>
<pre>protected&nbsp;boolean writeLock</pre>
<div class="block">whether write lock on this object (this GPUObject is being used in a current instruction)</div>
</li>
</ul>
<a name="isSparse">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>isSparse</h4>
<pre>protected&nbsp;boolean isSparse</pre>
<div class="block">Whether this block is in sparse format</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getDensePointer--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDensePointer</h4>
<pre>public&nbsp;jcuda.Pointer&nbsp;getDensePointer()</pre>
<div class="block">Pointer to dense matrix</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a pointer to the dense matrix</dd>
</dl>
</li>
</ul>
<a name="isDensePointerNull--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isDensePointerNull</h4>
<pre>public&nbsp;boolean&nbsp;isDensePointerNull()</pre>
<div class="block">Checks if the dense pointer is null</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>if the state of dense pointer is null</dd>
</dl>
</li>
</ul>
<a name="clearDensePointer--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearDensePointer</h4>
<pre>public&nbsp;void&nbsp;clearDensePointer()</pre>
<div class="block">Removes the dense pointer and potential soft reference</div>
</li>
</ul>
<a name="setDensePointer-jcuda.Pointer-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setDensePointer</h4>
<pre>public&nbsp;void&nbsp;setDensePointer(jcuda.Pointer&nbsp;densePtr)</pre>
<div class="block">Convenience method to directly set the dense matrix pointer on GPU</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>densePtr</code> - dense pointer</dd>
</dl>
</li>
</ul>
<a name="clone--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clone</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;clone()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
</dl>
</li>
</ul>
<a name="transpose-org.apache.sysds.runtime.instructions.gpu.context.GPUContext-jcuda.Pointer-int-int-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>transpose</h4>
<pre>public static&nbsp;jcuda.Pointer&nbsp;transpose(<a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUContext.html" title="class in org.apache.sysds.runtime.instructions.gpu.context">GPUContext</a>&nbsp;gCtx,
jcuda.Pointer&nbsp;densePtr,
int&nbsp;m,
int&nbsp;n,
int&nbsp;lda,
int&nbsp;ldc)</pre>
<div class="block">Transposes a dense matrix on the GPU by calling the cublasDgeam operation</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>gCtx</code> - a valid <a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUContext.html" title="class in org.apache.sysds.runtime.instructions.gpu.context"><code>GPUContext</code></a></dd>
<dd><code>densePtr</code> - Pointer to dense matrix on the GPU</dd>
<dd><code>m</code> - rows in ouput matrix</dd>
<dd><code>n</code> - columns in output matrix</dd>
<dd><code>lda</code> - rows in input matrix</dd>
<dd><code>ldc</code> - columns in output matrix</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>transposed matrix</dd>
</dl>
</li>
</ul>
<a name="columnMajorDenseToRowMajorSparse-org.apache.sysds.runtime.instructions.gpu.context.GPUContext-jcuda.jcusparse.cusparseHandle-jcuda.Pointer-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>columnMajorDenseToRowMajorSparse</h4>
<pre>public static&nbsp;<a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/CSRPointer.html" title="class in org.apache.sysds.runtime.instructions.gpu.context">CSRPointer</a>&nbsp;columnMajorDenseToRowMajorSparse(<a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUContext.html" title="class in org.apache.sysds.runtime.instructions.gpu.context">GPUContext</a>&nbsp;gCtx,
jcuda.jcusparse.cusparseHandle&nbsp;cusparseHandle,
jcuda.Pointer&nbsp;densePtr,
int&nbsp;rows,
int&nbsp;cols)</pre>
<div class="block">Convenience method to convert a CSR matrix to a dense matrix on the GPU
Since the allocated matrix is temporary, bookkeeping is not updated.
Also note that the input dense matrix is expected to be in COLUMN MAJOR FORMAT
Caller is responsible for deallocating memory on GPU.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>gCtx</code> - a valid <a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUContext.html" title="class in org.apache.sysds.runtime.instructions.gpu.context"><code>GPUContext</code></a></dd>
<dd><code>cusparseHandle</code> - handle to cusparse library</dd>
<dd><code>densePtr</code> - [in] dense matrix pointer on the GPU in row major</dd>
<dd><code>rows</code> - number of rows</dd>
<dd><code>cols</code> - number of columns</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>CSR (compressed sparse row) pointer</dd>
</dl>
</li>
</ul>
<a name="getSparseMatrixCudaPointer--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSparseMatrixCudaPointer</h4>
<pre>public&nbsp;<a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/CSRPointer.html" title="class in org.apache.sysds.runtime.instructions.gpu.context">CSRPointer</a>&nbsp;getSparseMatrixCudaPointer()</pre>
<div class="block">Convenience method to directly examine the Sparse matrix on GPU</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>CSR (compressed sparse row) pointer</dd>
</dl>
</li>
</ul>
<a name="setSparseMatrixCudaPointer-org.apache.sysds.runtime.instructions.gpu.context.CSRPointer-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSparseMatrixCudaPointer</h4>
<pre>public&nbsp;void&nbsp;setSparseMatrixCudaPointer(<a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/CSRPointer.html" title="class in org.apache.sysds.runtime.instructions.gpu.context">CSRPointer</a>&nbsp;sparseMatrixPtr)</pre>
<div class="block">Convenience method to directly set the sparse matrix on GPU
Needed for operations like cusparseDcsrgemm(cusparseHandle, int, int, int, int, int, cusparseMatDescr, int, Pointer, Pointer, Pointer, cusparseMatDescr, int, Pointer, Pointer, Pointer, cusparseMatDescr, Pointer, Pointer, Pointer)</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sparseMatrixPtr</code> - CSR (compressed sparse row) pointer</dd>
</dl>
</li>
</ul>
<a name="denseToSparse--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>denseToSparse</h4>
<pre>public&nbsp;void&nbsp;denseToSparse()</pre>
<div class="block">Converts this GPUObject from dense to sparse format.</div>
</li>
</ul>
<a name="denseRowMajorToColumnMajor--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>denseRowMajorToColumnMajor</h4>
<pre>public&nbsp;void&nbsp;denseRowMajorToColumnMajor()</pre>
<div class="block">Convenience method. Converts Row Major Dense Matrix to Column Major Dense Matrix</div>
</li>
</ul>
<a name="denseColumnMajorToRowMajor--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>denseColumnMajorToRowMajor</h4>
<pre>public&nbsp;void&nbsp;denseColumnMajorToRowMajor()</pre>
<div class="block">Convenience method. Converts Column Major Dense Matrix to Row Major Dense Matrix</div>
</li>
</ul>
<a name="sparseToDense--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sparseToDense</h4>
<pre>public&nbsp;void&nbsp;sparseToDense()</pre>
<div class="block">Convert sparse to dense (Performs transpose, use sparseToColumnMajorDense if the kernel can deal with column major format)</div>
</li>
</ul>
<a name="sparseToDense-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sparseToDense</h4>
<pre>public&nbsp;void&nbsp;sparseToDense(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;instructionName)</pre>
<div class="block">Convert sparse to dense (Performs transpose, use sparseToColumnMajorDense if the kernel can deal with column major format)
Also records per instruction invokation of sparseToDense.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>instructionName</code> - Name of the instruction for which statistics are recorded in <a href="../../../../../../../org/apache/sysds/utils/GPUStatistics.html" title="class in org.apache.sysds.utils"><code>GPUStatistics</code></a></dd>
</dl>
</li>
</ul>
<a name="sparseToColumnMajorDense--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sparseToColumnMajorDense</h4>
<pre>public&nbsp;void&nbsp;sparseToColumnMajorDense()</pre>
<div class="block">More efficient method to convert sparse to dense but returns dense in column major format</div>
</li>
</ul>
<a name="isSparse--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSparse</h4>
<pre>public&nbsp;boolean&nbsp;isSparse()</pre>
</li>
</ul>
<a name="isAllocated--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAllocated</h4>
<pre>public&nbsp;boolean&nbsp;isAllocated()</pre>
</li>
</ul>
<a name="allocateSparseAndEmpty--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allocateSparseAndEmpty</h4>
<pre>public&nbsp;void&nbsp;allocateSparseAndEmpty()</pre>
<div class="block">Allocates a sparse and empty <a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html" title="class in org.apache.sysds.runtime.instructions.gpu.context"><code>GPUObject</code></a>
This is the result of operations that are both non zero matrices.</div>
</li>
</ul>
<a name="allocateAndFillDense-double-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allocateAndFillDense</h4>
<pre>public&nbsp;void&nbsp;allocateAndFillDense(double&nbsp;v)</pre>
<div class="block">Allocates a dense matrix of size obtained from the attached matrix metadata
and fills it up with a single value</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>v</code> - value to fill up the dense matrix</dd>
</dl>
</li>
</ul>
<a name="isSparseAndEmpty--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSparseAndEmpty</h4>
<pre>public&nbsp;boolean&nbsp;isSparseAndEmpty()</pre>
<div class="block">If this <a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html" title="class in org.apache.sysds.runtime.instructions.gpu.context"><code>GPUObject</code></a> is sparse and empty
Being allocated is a prerequisite to being sparse and empty.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if sparse and empty</dd>
</dl>
</li>
</ul>
<a name="getNnz-java.lang.String-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNnz</h4>
<pre>public&nbsp;long&nbsp;getNnz(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;instName,
boolean&nbsp;recomputeDenseNNZ)</pre>
<div class="block">Being allocated is a prerequisite for computing nnz.
Note: if the matrix is in dense format, it explicitly re-computes the number of nonzeros.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>instName</code> - instruction name</dd>
<dd><code>recomputeDenseNNZ</code> - recompute NNZ if dense</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the number of nonzeroes</dd>
</dl>
</li>
</ul>
<a name="acquireDeviceRead-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>acquireDeviceRead</h4>
<pre>public&nbsp;boolean&nbsp;acquireDeviceRead(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;opcode)</pre>
</li>
</ul>
<a name="acquireDeviceModifyDense--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>acquireDeviceModifyDense</h4>
<pre>public&nbsp;boolean&nbsp;acquireDeviceModifyDense()</pre>
</li>
</ul>
<a name="acquireDeviceModifySparse--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>acquireDeviceModifySparse</h4>
<pre>public&nbsp;boolean&nbsp;acquireDeviceModifySparse()</pre>
</li>
</ul>
<a name="acquireHostRead-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>acquireHostRead</h4>
<pre>public&nbsp;boolean&nbsp;acquireHostRead(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;instName)</pre>
<div class="block">if the data is allocated on the GPU and is dirty, it is copied back to the host memory</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>instName</code> - name of the instruction</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if a copy to host happened, false otherwise</dd>
</dl>
</li>
</ul>
<a name="isLocked--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLocked</h4>
<pre>public&nbsp;boolean&nbsp;isLocked()</pre>
</li>
</ul>
<a name="addReadLock--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addReadLock</h4>
<pre>public&nbsp;void&nbsp;addReadLock()</pre>
</li>
</ul>
<a name="addWriteLock--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addWriteLock</h4>
<pre>public&nbsp;void&nbsp;addWriteLock()</pre>
</li>
</ul>
<a name="releaseReadLock--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>releaseReadLock</h4>
<pre>public&nbsp;void&nbsp;releaseReadLock()</pre>
</li>
</ul>
<a name="releaseWriteLock--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>releaseWriteLock</h4>
<pre>public&nbsp;void&nbsp;releaseWriteLock()</pre>
</li>
</ul>
<a name="resetReadWriteLock--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>resetReadWriteLock</h4>
<pre>public&nbsp;void&nbsp;resetReadWriteLock()</pre>
</li>
</ul>
<a name="releaseInput--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>releaseInput</h4>
<pre>public&nbsp;void&nbsp;releaseInput()</pre>
<div class="block">Releases input allocated on GPU</div>
</li>
</ul>
<a name="releaseOutput--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>releaseOutput</h4>
<pre>public&nbsp;void&nbsp;releaseOutput()</pre>
<div class="block">releases output allocated on GPU</div>
</li>
</ul>
<a name="getSizeOnDevice--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSizeOnDevice</h4>
<pre>protected&nbsp;long&nbsp;getSizeOnDevice()</pre>
</li>
</ul>
<a name="toIntExact-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toIntExact</h4>
<pre>public static&nbsp;int&nbsp;toIntExact(long&nbsp;l)</pre>
</li>
</ul>
<a name="copyFromDeviceToHost-java.lang.String-boolean-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>copyFromDeviceToHost</h4>
<pre>protected&nbsp;void&nbsp;copyFromDeviceToHost(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;instName,
boolean&nbsp;isEviction,
boolean&nbsp;eagerDelete)
throws <a href="../../../../../../../org/apache/sysds/runtime/DMLRuntimeException.html" title="class in org.apache.sysds.runtime">DMLRuntimeException</a></pre>
<div class="block">Copies the data from device to host.
Currently eagerDelete and isEviction are both provided for better control in different scenarios.
In future, we can force eagerDelete if isEviction is true, else false.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>instName</code> - opcode of the instruction for fine-grained statistics</dd>
<dd><code>isEviction</code> - is called for eviction</dd>
<dd><code>eagerDelete</code> - whether to perform eager deletion of the device data.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../../org/apache/sysds/runtime/DMLRuntimeException.html" title="class in org.apache.sysds.runtime">DMLRuntimeException</a></code> - if error occurs</dd>
</dl>
</li>
</ul>
<a name="clearData-java.lang.String-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearData</h4>
<pre>public&nbsp;void&nbsp;clearData(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;opcode,
boolean&nbsp;eager)
throws <a href="../../../../../../../org/apache/sysds/runtime/DMLRuntimeException.html" title="class in org.apache.sysds.runtime">DMLRuntimeException</a></pre>
<div class="block">Clears the data associated with this <a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html" title="class in org.apache.sysds.runtime.instructions.gpu.context"><code>GPUObject</code></a> instance</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>opcode</code> - opcode of the instruction</dd>
<dd><code>eager</code> - whether to be done synchronously or asynchronously</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../../org/apache/sysds/runtime/DMLRuntimeException.html" title="class in org.apache.sysds.runtime">DMLRuntimeException</a></code> - if error occurs</dd>
</dl>
</li>
</ul>
<a name="getJcudaSparseMatrixPtr--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getJcudaSparseMatrixPtr</h4>
<pre>public&nbsp;<a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/CSRPointer.html" title="class in org.apache.sysds.runtime.instructions.gpu.context">CSRPointer</a>&nbsp;getJcudaSparseMatrixPtr()</pre>
<div class="block">Pointer to sparse matrix</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>?</dd>
</dl>
</li>
</ul>
<a name="isDirty--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isDirty</h4>
<pre>public&nbsp;boolean&nbsp;isDirty()</pre>
<div class="block">Whether this block is dirty on the GPU</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>?</dd>
</dl>
</li>
</ul>
<a name="toString--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toString()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/GPUObject.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUMemoryManager.EvictionPolicyBasedComparator.html" title="class in org.apache.sysds.runtime.instructions.gpu.context"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../org/apache/sysds/runtime/instructions/gpu/context/JCudaKernels.html" title="class in org.apache.sysds.runtime.instructions.gpu.context"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html" target="_top">Frames</a></li>
<li><a href="GPUObject.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2020 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>