Numbaとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > Numbaの意味・解説 

Numba

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/03/08 09:24 UTC 版)

Numba
開発元 Anaconda, Inc.
初版 2012年8月15日 (12年前) (2012-08-15)
最新版
0.61.0[1]  / 2025年1月21日 (46日前)
リポジトリ
プログラミング
言語
Python, C言語
プラットフォーム x86-64, ARM64, POWER
ライセンス 二条項BSDライセンス
公式サイト numba.pydata.org
テンプレートを表示

NumbaPythonおよびNumPyのサブセットのソースコードを高速に実行する機械語に変換するJITコンパイラ。llvmliteにて、LLVMをバックエンドに使用し、CPU向けにコンパイルする。Anaconda, Inc.がスポンサーになっている。

かつてはNVIDIA CUDA向けもNumba内で開発されていたが、Numba 0.61より非推奨になり、Numba CUDAに分離され、NVIDIAが開発することになった。[2]

実行時コンパイル

Pythonの関数に @jit のデコレーターを付けることで、実行時にJITコンパイルされる。

下記の例においては、Numba 0.27.0において、Pythonよりも200倍高速に動作し、NumPyの組み込みのsum()関数よりも30%高速に動作する[3][4]

from numba import jit

@jit
def sum1d(ary):
    total = 0.0
    for i in range(ary.shape[0]):
        total += ary[i]
    return total

Numba CUDA

Numba CUDA
開発元 NVIDIA
最新版
0.6.0 / 2025年3月7日 (33時間前) (2025-03-07)[5]
リポジトリ numba-cuda - GitHub
プラットフォーム NVIDIA GPU Maxwell マイクロアーキテクチャ以降[2]
ライセンス 二条項BSDライセンス
公式サイト nvidia.github.io/numba-cuda/
テンプレートを表示

Numba CUDAはNVIDIAが開発していて、通常はCUDAカーネルをC++で記述するが、Numba CUDAはそれをPythonで記述できる[6]。なお、CUDAカーネルをC++で記述するので構わないが、CUDAをPythonで実行したい場合は、PyCUDA[7]やCUDA Python[8]などがある。

Numba CUDAのCUDAカーネル内では、Pythonの記法で記載するが、メモリ確保が出来ないため、NumPyのほとんどの機能は使えない[9]。Numba CUDAはCuPyと併用することが出来て、CUDAカーネル外になるが、CuPyではNumPyの機能が使える。以下、CuPyを併用したときのB = A + A.Tのサンプルコード。

import cupy as cp
from numba import cuda

@cuda.jit
def add_kernel(A, B):
    y, x = cuda.grid(2)
    B[y, x] = A[y, x] + A[x, y]

A = cp.array([[1, 2], [3, 4]], dtype=cp.float32)
B = cp.zeros(A.shape, dtype=cp.float32)
add_kernel[1, A.shape](A, B)

print(B)
print(A + A.T)

参照

  1. ^ Release 0.61.0” (21 1月 2025). 26 1月 2025閲覧。
  2. ^ a b Overview — Numba 0+untagged.1829.g8ec16ce.dirty documentation”. numba.readthedocs.io. 16 February 2025閲覧。
  3. ^ A Speed Comparison Of C, Julia, Python, Numba, and Cython on LU Factorization”. 2019年1月25日閲覧。
  4. ^ Numba vs. Cython: Take 2”. 2019年1月25日閲覧。
  5. ^ Tags · NVIDIA/numba-cuda”. February 16, 2025閲覧。
  6. ^ Writing CUDA Kernels — Numba CUDA documentation”. nvidia.github.io. 8 March 2025閲覧。
  7. ^ pycuda 2025.1 documentation”. documen.tician.de. 8 March 2025閲覧。
  8. ^ CUDA Python 12.8.0 documentation”. nvidia.github.io. 8 March 2025閲覧。
  9. ^ Supported Python features in CUDA Python — Numba CUDA documentation”. nvidia.github.io. 8 March 2025閲覧。

関連項目

外部リンク




英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Numba」の関連用語

Numbaのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Numbaのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのNumba (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS