<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>NVIDIA CUDA Library: cuCtxEnablePeerAccess</title> <link href="customdoxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.5.8 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> </ul> </div> </div> <div class="contents"> <div class="navpath"><a class="el" href="group__CUDA__PEER__ACCESS.html">Peer Context Memory Access</a> </div> <table cellspacing="0" cellpadding="0" border="0"> <tr> <td valign="top"> <div class="navtab"> <table> <tr><td class="navtab"><a class="qindex" href="group__CUDA__PEER__ACCESS_g5b4b6936ea868d4954ce4d841a3b4810.html#g5b4b6936ea868d4954ce4d841a3b4810">cuCtxDisablePeerAccess</a></td></tr> <tr><td class="navtab"><a class="qindexHL" href="group__CUDA__PEER__ACCESS_g0889ec6728e61c05ed359551d67b3f5a.html#g0889ec6728e61c05ed359551d67b3f5a">cuCtxEnablePeerAccess</a></td></tr> <tr><td class="navtab"><a class="qindex" href="group__CUDA__PEER__ACCESS_g496bdaae1f632ebfb695b99d2c40f19e.html#g496bdaae1f632ebfb695b99d2c40f19e">cuDeviceCanAccessPeer</a></td></tr> </table> </div> </td> <td valign="top"> <a class="anchor" name="g0889ec6728e61c05ed359551d67b3f5a"></a><!-- doxytag: member="cuda.h::cuCtxEnablePeerAccess" ref="g0889ec6728e61c05ed359551d67b3f5a" args="(CUcontext peerContext, unsigned int Flags)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__CUDA__TYPES_g09da14df1a751dcbfeccb9cf0073d64c.html#g09da14df1a751dcbfeccb9cf0073d64c">CUresult</a> cuCtxEnablePeerAccess </td> <td>(</td> <td class="paramtype"><a class="el" href="group__CUDA__TYPES_gf9f5bd81658f866613785b3a0bb7d7d9.html#gf9f5bd81658f866613785b3a0bb7d7d9">CUcontext</a> </td> <td class="paramname"> <em>peerContext</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>Flags</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> If both the current context and <code>peerContext</code> are on devices which support unified addressing (as may be queried using <a class="el" href="group__CUDA__TYPES_g3b9f561d2a42733dde99b2cedcaa413a.html#gg3b9f561d2a42733dde99b2cedcaa413adc11dd6d9f149a7bae32499f2b802c0d">CU_DEVICE_ATTRIBUTE_UNIFIED_ADDRESSING</a>), then on success all allocations from <code>peerContext</code> will immediately be accessible by the current context. See <a class="el" href="group__CUDA__UNIFIED.html">Unified Addressing</a> for additional details.<p> Note that access granted by this call is unidirectional and that in order to access memory from the current context in <code>peerContext</code>, a separate symmetric call to <a class="el" href="group__CUDA__PEER__ACCESS_g0889ec6728e61c05ed359551d67b3f5a.html#g0889ec6728e61c05ed359551d67b3f5a" title="Enables direct access to memory allocations in a peer context.">cuCtxEnablePeerAccess()</a> is required.<p> Returns <a class="el" href="group__CUDA__TYPES_g0cdead942fd5028d157641eef6bdeeaa.html#gg0cdead942fd5028d157641eef6bdeeaa6f047e7215788ca96c81af92a04bfb6c">CUDA_ERROR_INVALID_DEVICE</a> if <a class="el" href="group__CUDA__PEER__ACCESS_g496bdaae1f632ebfb695b99d2c40f19e.html#g496bdaae1f632ebfb695b99d2c40f19e" title="Queries if a device may directly access a peer device's memory.">cuDeviceCanAccessPeer()</a> indicates that the <a class="el" href="group__CUDA__TYPES_gcd81b70eb9968392bb5cdf582af8eab4.html#gcd81b70eb9968392bb5cdf582af8eab4">CUdevice</a> of the current context cannot directly access memory from the <a class="el" href="group__CUDA__TYPES_gcd81b70eb9968392bb5cdf582af8eab4.html#gcd81b70eb9968392bb5cdf582af8eab4">CUdevice</a> of <code>peerContext</code>.<p> Returns <a class="el" href="group__CUDA__TYPES_g0cdead942fd5028d157641eef6bdeeaa.html#gg0cdead942fd5028d157641eef6bdeeaa47c18606be796573aa2957402fa89a9c">CUDA_ERROR_PEER_ACCESS_ALREADY_ENABLED</a> if direct access of <code>peerContext</code> from the current context has already been enabled.<p> Returns <a class="el" href="group__CUDA__TYPES_g0cdead942fd5028d157641eef6bdeeaa.html#gg0cdead942fd5028d157641eef6bdeeaa168ef870793a31ef4cdd7cb6e279b34a">CUDA_ERROR_TOO_MANY_PEERS</a> if direct peer access is not possible because hardware resources required for peer access have been exhausted.<p> Returns <a class="el" href="group__CUDA__TYPES_g0cdead942fd5028d157641eef6bdeeaa.html#gg0cdead942fd5028d157641eef6bdeeaaa484e9af32c1e9893ff21f0e0191a12d">CUDA_ERROR_INVALID_CONTEXT</a> if there is no current context, <code>peerContext</code> is not a valid context, or if the current context is <code>peerContext</code>.<p> Returns <a class="el" href="group__CUDA__TYPES_g0cdead942fd5028d157641eef6bdeeaa.html#gg0cdead942fd5028d157641eef6bdeeaa90696c86fcee1f536a1ec7d25867feeb">CUDA_ERROR_INVALID_VALUE</a> if <code>Flags</code> is not 0.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>peerContext</em> </td><td>- Peer context to enable direct access to from the current context </td></tr> <tr><td valign="top"></td><td valign="top"><em>Flags</em> </td><td>- Reserved for future use and must be set to 0</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__CUDA__TYPES_g0cdead942fd5028d157641eef6bdeeaa.html#gg0cdead942fd5028d157641eef6bdeeaaa0eed720f8a87cd1c5fd1c453bc7a03d">CUDA_SUCCESS</a>, <a class="el" href="group__CUDA__TYPES_g0cdead942fd5028d157641eef6bdeeaa.html#gg0cdead942fd5028d157641eef6bdeeaaacf52f132faf29b473cdda6061f0f44a">CUDA_ERROR_DEINITIALIZED</a>, <a class="el" href="group__CUDA__TYPES_g0cdead942fd5028d157641eef6bdeeaa.html#gg0cdead942fd5028d157641eef6bdeeaa8feb999f0af99b4a25ab26b3866f4df8">CUDA_ERROR_NOT_INITIALIZED</a>, <a class="el" href="group__CUDA__TYPES_g0cdead942fd5028d157641eef6bdeeaa.html#gg0cdead942fd5028d157641eef6bdeeaa6f047e7215788ca96c81af92a04bfb6c">CUDA_ERROR_INVALID_DEVICE</a>, <a class="el" href="group__CUDA__TYPES_g0cdead942fd5028d157641eef6bdeeaa.html#gg0cdead942fd5028d157641eef6bdeeaa47c18606be796573aa2957402fa89a9c">CUDA_ERROR_PEER_ACCESS_ALREADY_ENABLED</a>, <a class="el" href="group__CUDA__TYPES_g0cdead942fd5028d157641eef6bdeeaa.html#gg0cdead942fd5028d157641eef6bdeeaa168ef870793a31ef4cdd7cb6e279b34a">CUDA_ERROR_TOO_MANY_PEERS</a>, <a class="el" href="group__CUDA__TYPES_g0cdead942fd5028d157641eef6bdeeaa.html#gg0cdead942fd5028d157641eef6bdeeaaa484e9af32c1e9893ff21f0e0191a12d">CUDA_ERROR_INVALID_CONTEXT</a>, <a class="el" href="group__CUDA__TYPES_g0cdead942fd5028d157641eef6bdeeaa.html#gg0cdead942fd5028d157641eef6bdeeaa90696c86fcee1f536a1ec7d25867feeb">CUDA_ERROR_INVALID_VALUE</a> </dd></dl> <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> <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__CUDA__PEER__ACCESS_g496bdaae1f632ebfb695b99d2c40f19e.html#g496bdaae1f632ebfb695b99d2c40f19e" title="Queries if a device may directly access a peer device's memory.">cuDeviceCanAccessPeer</a>, <a class="el" href="group__CUDA__PEER__ACCESS_g5b4b6936ea868d4954ce4d841a3b4810.html#g5b4b6936ea868d4954ce4d841a3b4810" title="Disables direct access to memory allocations in a peer context and unregisters any...">cuCtxDisablePeerAccess</a> </dd></dl> </div> </div><p> </td> </tr> </table> </div> <hr size="1"><address style="text-align: right;"><small> Generated by Doxygen for NVIDIA CUDA Library <a href="http://www.nvidia.com/cuda"><img src="nvidia_logo.jpg" alt="NVIDIA" align="middle" border="0" height="80"></a></small></address> </body> </html>