<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 4.3。內存管理 > 原文: [http://numba.pydata.org/numba-doc/latest/cuda-reference/memory.html](http://numba.pydata.org/numba-doc/latest/cuda-reference/memory.html) ```py numba.cuda.to_device(obj, stream=0, copy=True, to=None) ``` 將 numpy ndarray 或結構化標量分配并傳輸到設備。 要將 host-&gt;設備復制為 numpy 數組: ```py ary = np.arange(10) d_ary = cuda.to_device(ary) ``` 要將傳輸排入隊列: ```py stream = cuda.stream() d_ary = cuda.to_device(ary, stream=stream) ``` 得到的`d_ary`是`DeviceNDArray`。 要復制 device-&gt;主機: ```py hary = d_ary.copy_to_host() ``` 要將 device-&gt;主機復制到現有數組: ```py ary = np.empty(shape=d_ary.shape, dtype=d_ary.dtype) d_ary.copy_to_host(ary) ``` 要將傳輸排入隊列: ```py hary = d_ary.copy_to_host(stream=stream) ``` ```py numba.cuda.device_array(shape, dtype=np.float, strides=None, order='C', stream=0) ``` 分配一個空設備 ndarray。與`numpy.empty()`類似。 ```py numba.cuda.device_array_like(ary, stream=0) ``` 使用數組中的信息調用 cuda.devicearray()。 ```py numba.cuda.pinned_array(shape, dtype=np.float, strides=None, order='C') ``` 使用固定(頁面鎖定)的緩沖區分配 np.ndarray。與 np.empty()類似。 ```py numba.cuda.mapped_array(shape, dtype=np.float, strides=None, order='C', stream=0, portable=False, wc=False) ``` 使用固定并映射到設備的緩沖區分配映射的 ndarray。與 np.empty()相似 | 參數: | * **便攜式** - 一個布爾標志,允許分配的設備內存在多個設備中使用。 * **wc** - 一個布爾標志,用于啟用寫組合分配,主機寫入和設備讀取速度更快,但主機寫入速度較慢,設備寫入速度較慢。 | | --- | --- | ```py numba.cuda.pinned(*arylist) ``` 用于臨時固定主機 ndarray 序列的上下文管理器。 ```py numba.cuda.mapped(*arylist, **kws) ``` 用于臨時映射主機 ndarray 序列的上下文管理器。 ## 4.3.1。設備對象 ```py class numba.cuda.cudadrv.devicearray.DeviceNDArray(shape, strides, dtype, stream=0, writeback=None, gpu_data=None) ``` GPU 上陣列類型 ```py copy_to_device(ary, stream=0) ``` 將 &lt;cite&gt;ary&lt;/cite&gt; 復制到 &lt;cite&gt;self&lt;/cite&gt; 。 如果 &lt;cite&gt;ary&lt;/cite&gt; 是 CUDA 內存,請執行設備到設備傳輸。否則,執行主機到設備傳輸。 ```py copy_to_host(ary=None, stream=0) ``` 如果`ary`為`None`,則將`self`復制到`ary`或創建新的 Numpy ndarray。 如果給出了 CUDA `stream`,則傳輸將作為給定流的一部分異步進行。否則,傳輸是同步的:復制完成后函數返回。 始終返回主機陣列。 例: ```py import numpy as np from numba import cuda arr = np.arange(1000) d_arr = cuda.to_device(arr) my_kernel[100, 100](d_arr) result_array = d_arr.copy_to_host() ``` ```py is_c_contiguous() ``` 如果數組是 C-contiguous,則返回 true。 ```py is_f_contiguous() ``` 如果數組是 Fortran-contiguous,則返回 true。 ```py ravel(order='C', stream=0) ``` 在不改變其內容的情況下展平陣列,類似于 [`numpy.ndarray.ravel()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.ravel.html#numpy.ndarray.ravel "(in NumPy v1.16)") 。 ```py reshape(*newshape, **kws) ``` 與 [`numpy.ndarray.reshape()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.reshape.html#numpy.ndarray.reshape "(in NumPy v1.16)") 類似,重塑陣列而不改變其內容。例: ```py d_arr = d_arr.reshape(20, 50, order='F') ``` ```py split(section, stream=0) ``` 將數組拆分為&lt;cite&gt;部分&lt;/cite&gt;大小的相等分區。如果陣列不能平均分割,則最后一部分將更小。 ```py class numba.cuda.cudadrv.devicearray.DeviceRecord(dtype, stream=0, gpu_data=None) ``` GPU 上的記錄類型 ```py copy_to_device(ary, stream=0) ``` 將 &lt;cite&gt;ary&lt;/cite&gt; 復制到 &lt;cite&gt;self&lt;/cite&gt; 。 如果 &lt;cite&gt;ary&lt;/cite&gt; 是 CUDA 內存,請執行設備到設備傳輸。否則,執行主機到設備傳輸。 ```py copy_to_host(ary=None, stream=0) ``` 如果`ary`為`None`,則將`self`復制到`ary`或創建新的 Numpy ndarray。 如果給出了 CUDA `stream`,則傳輸將作為給定流的一部分異步進行。否則,傳輸是同步的:復制完成后函數返回。 始終返回主機陣列。 例: ```py import numpy as np from numba import cuda arr = np.arange(1000) d_arr = cuda.to_device(arr) my_kernel[100, 100](d_arr) result_array = d_arr.copy_to_host() ``` ```py class numba.cuda.cudadrv.devicearray.MappedNDArray(shape, strides, dtype, stream=0, writeback=None, gpu_data=None) ``` 使用 CUDA 映射內存的主機陣列。 ```py copy_to_device(ary, stream=0) ``` 將 &lt;cite&gt;ary&lt;/cite&gt; 復制到 &lt;cite&gt;self&lt;/cite&gt; 。 如果 &lt;cite&gt;ary&lt;/cite&gt; 是 CUDA 內存,請執行設備到設備傳輸。否則,執行主機到設備傳輸。 ```py copy_to_host(ary=None, stream=0) ``` 如果`ary`為`None`,則將`self`復制到`ary`或創建新的 Numpy ndarray。 如果給出了 CUDA `stream`,則傳輸將作為給定流的一部分異步進行。否則,傳輸是同步的:復制完成后函數返回。 始終返回主機陣列。 例: ```py import numpy as np from numba import cuda arr = np.arange(1000) d_arr = cuda.to_device(arr) my_kernel[100, 100](d_arr) result_array = d_arr.copy_to_host() ``` ```py split(section, stream=0) ``` 將數組拆分為&lt;cite&gt;部分&lt;/cite&gt;大小的相等分區。如果陣列不能平均分割,則最后一部分將更小。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看