1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3 <title>NVIDIA CUDA Library: cudaMalloc3D</title>
4 <link href="customdoxygen.css" rel="stylesheet" type="text/css">
5 <link href="tabs.css" rel="stylesheet" type="text/css">
7 <!-- Generated by Doxygen 1.5.8 -->
8 <div class="navigation" id="top">
11 <li><a href="index.html"><span>Main Page</span></a></li>
12 <li><a href="modules.html"><span>Modules</span></a></li>
13 <li><a href="annotated.html"><span>Data Structures</span></a></li>
17 <div class="contents">
18 <div class="navpath"><a class="el" href="group__CUDART__MEMORY.html">Memory Management</a>
20 <table cellspacing="0" cellpadding="0" border="0">
25 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_gb17fef862d4d1fefb9dba35bd62a187e.html#gb17fef862d4d1fefb9dba35bd62a187e">cudaFree</a></td></tr>
26 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_g87eb9f7a50c1f43aee18bdcfde3f4340.html#g87eb9f7a50c1f43aee18bdcfde3f4340">cudaFreeArray</a></td></tr>
27 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_gedaeb2708ad3f74d5b417ee1874ec84a.html#gedaeb2708ad3f74d5b417ee1874ec84a">cudaFreeHost</a></td></tr>
28 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_g2db2376f8fb4203df2fa9e104e16978e.html#g2db2376f8fb4203df2fa9e104e16978e">cudaGetSymbolAddress</a></td></tr>
29 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_g8423ddbee69126e5507178f1567b05f1.html#g8423ddbee69126e5507178f1567b05f1">cudaGetSymbolSize</a></td></tr>
30 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_g217d441a73d9304c6f0ccc22ec307dba.html#g217d441a73d9304c6f0ccc22ec307dba">cudaHostAlloc</a></td></tr>
31 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_ga475419a9b21a66036029d5001ea908c.html#ga475419a9b21a66036029d5001ea908c">cudaHostGetDevicePointer</a></td></tr>
32 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_gc63ffd93e344b939d6399199d8b12fef.html#gc63ffd93e344b939d6399199d8b12fef">cudaMalloc</a></td></tr>
33 <tr><td class="navtab"><a class="qindexHL" href="group__CUDART__MEMORY_g04a7553c90322aef32f8544d5c356a10.html#g04a7553c90322aef32f8544d5c356a10">cudaMalloc3D</a></td></tr>
34 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_g44aff09d5db8b6fa81bd0576d8131da3.html#g44aff09d5db8b6fa81bd0576d8131da3">cudaMalloc3DArray</a></td></tr>
35 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_ge56101fe6f1ce0b48f163632f6862ae4.html#ge56101fe6f1ce0b48f163632f6862ae4">cudaMallocArray</a></td></tr>
36 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_g9f93d9600f4504e0d637ceb43c91ebad.html#g9f93d9600f4504e0d637ceb43c91ebad">cudaMallocHost</a></td></tr>
37 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_g80d689bc903792f906e49be4a0b6d8db.html#g80d689bc903792f906e49be4a0b6d8db">cudaMallocPitch</a></td></tr>
38 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_g48efa06b81cc031b2aa6fdc2e9930741.html#g48efa06b81cc031b2aa6fdc2e9930741">cudaMemcpy</a></td></tr>
39 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_g17f3a55e8c9aef5f90b67cdf22851375.html#g17f3a55e8c9aef5f90b67cdf22851375">cudaMemcpy2D</a></td></tr>
40 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_gd961f35704f81aa8d16f68707897c150.html#gd961f35704f81aa8d16f68707897c150">cudaMemcpy2DArrayToArray</a></td></tr>
41 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_g30c6e66c873a7e53a649f96b54b09465.html#g30c6e66c873a7e53a649f96b54b09465">cudaMemcpy2DAsync</a></td></tr>
42 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_g96eddd33b321e91d6fb1b9f337bf5a47.html#g96eddd33b321e91d6fb1b9f337bf5a47">cudaMemcpy2DFromArray</a></td></tr>
43 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_gad2e62119c537b9780b83a36d79340c6.html#gad2e62119c537b9780b83a36d79340c6">cudaMemcpy2DFromArrayAsync</a></td></tr>
44 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_g1cc6e4eb2a5e0cd2bebbc8ebb4b6c46f.html#g1cc6e4eb2a5e0cd2bebbc8ebb4b6c46f">cudaMemcpy2DToArray</a></td></tr>
45 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_ga0c91838976fe1d33014bd21bb9307bb.html#ga0c91838976fe1d33014bd21bb9307bb">cudaMemcpy2DToArrayAsync</a></td></tr>
46 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_gc1372614eb614f4689fbb82b4692d30a.html#gc1372614eb614f4689fbb82b4692d30a">cudaMemcpy3D</a></td></tr>
47 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_g5a8927bf1ea5de8c003316c9fd68d63b.html#g5a8927bf1ea5de8c003316c9fd68d63b">cudaMemcpy3DAsync</a></td></tr>
48 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_ga37909c2448136db5829682d49bce8d9.html#ga37909c2448136db5829682d49bce8d9">cudaMemcpyArrayToArray</a></td></tr>
49 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_ge4366f68c6fa8c85141448f187d2aa13.html#ge4366f68c6fa8c85141448f187d2aa13">cudaMemcpyAsync</a></td></tr>
50 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_g1620c76fb3337df8dc7186fd88f40b1a.html#g1620c76fb3337df8dc7186fd88f40b1a">cudaMemcpyFromArray</a></td></tr>
51 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_g6759d51be63c55ecf65f95fe41812f99.html#g6759d51be63c55ecf65f95fe41812f99">cudaMemcpyFromArrayAsync</a></td></tr>
52 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_g0b2cb4468ec7529fe24722f30e831a24.html#g0b2cb4468ec7529fe24722f30e831a24">cudaMemcpyFromSymbol</a></td></tr>
53 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_gd714c659cb7b652fac87cb3ccdabd709.html#gd714c659cb7b652fac87cb3ccdabd709">cudaMemcpyFromSymbolAsync</a></td></tr>
54 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_g06db36948e3ccda65d1adf3529420696.html#g06db36948e3ccda65d1adf3529420696">cudaMemcpyToArray</a></td></tr>
55 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_g8e6d82b24a4482ed49ba242fd231a9a5.html#g8e6d82b24a4482ed49ba242fd231a9a5">cudaMemcpyToArrayAsync</a></td></tr>
56 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_g58acd070e6f9bb82d7aeee3d0b958460.html#g58acd070e6f9bb82d7aeee3d0b958460">cudaMemcpyToSymbol</a></td></tr>
57 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_g981a3eb36f49cd65e69eb575739ba5d7.html#g981a3eb36f49cd65e69eb575739ba5d7">cudaMemcpyToSymbolAsync</a></td></tr>
58 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_ge07c97b96efd09abaeb3ca3b5f8da4ee.html#ge07c97b96efd09abaeb3ca3b5f8da4ee">cudaMemset</a></td></tr>
59 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_g2b3248e96aaba2241796e113d1798db3.html#g2b3248e96aaba2241796e113d1798db3">cudaMemset2D</a></td></tr>
60 <tr><td class="navtab"><a class="qindex" href="group__CUDART__MEMORY_g35171e821992f71d3c50f17032e079dc.html#g35171e821992f71d3c50f17032e079dc">cudaMemset3D</a></td></tr>
65 <a class="anchor" name="g04a7553c90322aef32f8544d5c356a10"></a><!-- doxytag: member="cuda_runtime_api.cpp::cudaMalloc3D" ref="g04a7553c90322aef32f8544d5c356a10" args="(struct cudaPitchedPtr *pitchedDevPtr, struct cudaExtent extent)" -->
67 <div class="memproto">
68 <table class="memname">
70 <td class="memname"><a class="el" href="group__CUDART__TYPES_gf599e5b8b829ce7db0f5216928f6ecb6.html#gf599e5b8b829ce7db0f5216928f6ecb6">cudaError_t</a> cudaMalloc3D </td>
72 <td class="paramtype">struct <a class="el" href="structcudaPitchedPtr.html">cudaPitchedPtr</a> * </td>
73 <td class="paramname"> <em>pitchedDevPtr</em>, </td>
76 <td class="paramkey"></td>
78 <td class="paramtype">struct <a class="el" href="structcudaExtent.html">cudaExtent</a> </td>
79 <td class="paramname"> <em>extent</em></td><td> </td>
84 <td></td><td></td><td></td>
91 Allocates at least <code>width</code> * <code>height</code> * <code>depth</code> bytes of linear memory on the device and returns a <a class="el" href="structcudaPitchedPtr.html">cudaPitchedPtr</a> in which <code>ptr</code> is a pointer to the allocated memory. The function may pad the allocation to ensure hardware alignment requirements are met. The pitch returned in the <code>pitch</code> field of <code>pitchedDevPtr</code> is the width in bytes of the allocation.<p>
92 The returned <a class="el" href="structcudaPitchedPtr.html">cudaPitchedPtr</a> contains additional fields <code>xsize</code> and <code>ysize</code>, the logical width and height of the allocation, which are equivalent to the <code>width</code> and <code>height</code> <code>extent</code> parameters provided by the programmer during allocation.<p>
93 For allocations of 2D and 3D objects, it is highly recommended that programmers perform allocations using <a class="el" href="group__CUDART__MEMORY_g04a7553c90322aef32f8544d5c356a10.html#g04a7553c90322aef32f8544d5c356a10" title="Allocates logical 1D, 2D, or 3D memory objects on the device.">cudaMalloc3D()</a> or <a class="el" href="group__CUDART__MEMORY_g80d689bc903792f906e49be4a0b6d8db.html#g80d689bc903792f906e49be4a0b6d8db" title="Allocates pitched memory on the device.">cudaMallocPitch()</a>. Due to alignment restrictions in the hardware, this is especially true if the application will be performing memory copies involving 2D or 3D objects (whether linear memory or CUDA arrays).<p>
94 <dl compact><dt><b>Parameters:</b></dt><dd>
95 <table border="0" cellspacing="2" cellpadding="0">
96 <tr><td valign="top"></td><td valign="top"><em>pitchedDevPtr</em> </td><td>- Pointer to allocated pitched device memory </td></tr>
97 <tr><td valign="top"></td><td valign="top"><em>extent</em> </td><td>- Requested allocation size</td></tr>
100 <dl class="return" compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__CUDART__TYPES_g3f51e3575c2178246db0a94a430e0038.html#gg3f51e3575c2178246db0a94a430e0038e355f04607d824883b4a50662830d591" title="No errors.">cudaSuccess</a>, <a class="el" href="group__CUDART__TYPES_g3f51e3575c2178246db0a94a430e0038.html#gg3f51e3575c2178246db0a94a430e0038f210f50ae7f17f655e0504929606add9" title="Memory allocation error.">cudaErrorMemoryAllocation</a> </dd></dl>
101 <dl class="note" compact><dt><b>Note:</b></dt><dd>Note that this function may also return error codes from previous, asynchronous launches.</dd></dl>
102 <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__CUDART__MEMORY_g80d689bc903792f906e49be4a0b6d8db.html#g80d689bc903792f906e49be4a0b6d8db" title="Allocates pitched memory on the device.">cudaMallocPitch</a>, <a class="el" href="group__CUDART__MEMORY_gb17fef862d4d1fefb9dba35bd62a187e.html#gb17fef862d4d1fefb9dba35bd62a187e" title="Frees memory on the device.">cudaFree</a>, <a class="el" href="group__CUDART__MEMORY_gc1372614eb614f4689fbb82b4692d30a.html#gc1372614eb614f4689fbb82b4692d30a" title="Copies data between 3D objects.">cudaMemcpy3D</a>, <a class="el" href="group__CUDART__MEMORY_g35171e821992f71d3c50f17032e079dc.html#g35171e821992f71d3c50f17032e079dc" title="Initializes or sets device memory to a value.">cudaMemset3D</a>, <a class="el" href="group__CUDART__MEMORY_g44aff09d5db8b6fa81bd0576d8131da3.html#g44aff09d5db8b6fa81bd0576d8131da3" title="Allocate an array on the device.">cudaMalloc3DArray</a>, <a class="el" href="group__CUDART__MEMORY_ge56101fe6f1ce0b48f163632f6862ae4.html#ge56101fe6f1ce0b48f163632f6862ae4" title="Allocate an array on the device.">cudaMallocArray</a>, <a class="el" href="group__CUDART__MEMORY_g87eb9f7a50c1f43aee18bdcfde3f4340.html#g87eb9f7a50c1f43aee18bdcfde3f4340" title="Frees an array on the device.">cudaFreeArray</a>, <a class="el" href="group__CUDART__MEMORY_g9f93d9600f4504e0d637ceb43c91ebad.html#g9f93d9600f4504e0d637ceb43c91ebad" title="Allocates page-locked memory on the host.">cudaMallocHost</a>, <a class="el" href="group__CUDART__MEMORY_gedaeb2708ad3f74d5b417ee1874ec84a.html#gedaeb2708ad3f74d5b417ee1874ec84a" title="Frees page-locked memory.">cudaFreeHost</a>, <a class="el" href="group__CUDART__MEMORY_g217d441a73d9304c6f0ccc22ec307dba.html#g217d441a73d9304c6f0ccc22ec307dba" title="Allocates page-locked memory on the host.">cudaHostAlloc</a>, make_cudaPitchedPtr, make_cudaExtent </dd></dl>
110 <hr size="1"><address style="text-align: right;"><small>
111 Generated by Doxygen on Mon Mar 30 23:16:11 2009 for NVIDIA CUDA Library <a
112 href="http://www.nvidia.com/cuda"><img src="nvidia_logo.jpg" alt="NVIDIA" align="middle" border="0" height="80"></a></small></address>