<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之旅 廣告
                # 3.12。 GPU 減少 > 原文: [http://numba.pydata.org/numba-doc/latest/cuda/reduction.html](http://numba.pydata.org/numba-doc/latest/cuda/reduction.html) 為 CUDA GPU 編寫縮減算法可能很棘手。 Numba 提供了一個`@reduce`裝飾器,用于將簡單的二進制操作轉換為簡化內核。 ## 3.12.1。 `@reduce` 例: ```py import numpy from numba import cuda @cuda.reduce def sum_reduce(a, b): return a + b A = (numpy.arange(1234, dtype=numpy.float64)) + 1 expect = A.sum() # numpy sum reduction got = sum_reduce(A) # cuda sum reduction assert expect == got ``` Lambda 函數也可以在這里使用: ```py sum_reduce = cuda.reduce(lambda a, b: a + b) ``` ## 3.12.2。減少 `reduce`裝飾器創建`Reduce`類的實例。 (目前,`reduce`是`Reduce`的別名,但不保證這種行為。) ```py class numba.cuda.Reduce(functor) ``` ```py __call__(arr, size=None, res=None, init=0, stream=0) ``` 完全減少。 | 參數: | * **arr** - 主機或設備陣列。如果給出了設備數組,則會在原地執行縮減,并覆蓋數組中的值。如果給出了主機陣列,則會自動將其復制到設備。 * **size** - 可選整數,指定要減少的`arr`中的元素數。如果未指定此參數,則會減少整個數組。 * **res** - 將減少結果寫入的可選設備數組。結果寫入此數組的第一個元素。如果指定了此參數,則不會從設備到主機進行減少輸出的通信。 * **init** - 還原的可選初始值,其類型必須與`arr.dtype`匹配。 * **流** - 執行還原的可選 CUDA 流。如果未指定流,則使用默認流 0。 | | --- | --- | | 返回: | 如果指定了`res`,則返回`None`。否則,返回減少的結果。 | | --- | --- | ```py __init__(functor) ``` 創建一個使用給定二進制函數減少值的縮減對象。二進制函數編譯一次并緩存在此對象中。保持此對象存活將阻止重新編譯。 | 參數: | **binop** - 要編譯為 CUDA 設備函數的函數,該函數將用作 CUDA 設備上的二進制運算。在內部,它使用`cuda.jit(device=True)`編譯。 | | --- | --- |
                  <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>

                              哎呀哎呀视频在线观看