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

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

CuPy

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

CuPy
開発元 Preferred Networks[1]
初版 2015年9月2日 (9年前) (2015-09-02)[2]
最新版
v13.4.1 / 2025年3月21日 (29時間前) (2025-03-21)[3]
リポジトリ cupy - GitHub
プログラミング
言語
Python, Cython, C++
プラットフォーム NVIDIA GPU, AMD GPU
種別 数値計算
ライセンス MITライセンス
公式サイト cupy.dev
テンプレートを表示

CuPyは、PythonでのGPUを使用した数値計算のためのオープンソースライブラリである。多次元配列、疎行列、それらを基盤としたさまざまな数値計算アルゴリズムに対応している[4]。CuPyはNumPyおよびSciPyと同じAPIセットを共有しており、NumPyやSciPyのコードをGPU上で実行するために置き換えて使用できる。CuPyはNVIDIA CUDAAMDのROCmに対応している[5][6]

CuPyは当初、ディープラーニングフレームワークのChainerのバックエンドとして開発され、2017年に独立したプロジェクトとなった[7]

配列作成

>>> import cupy as cp
>>> x = cp.array([1, 2, 3])
>>> x
array([1, 2, 3])
>>> y = cp.arange(10)
>>> y
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

基本的操作

>>> import cupy as cp
>>> x = cp.arange(12).reshape(3, 4).astype(cp.float32)
>>> x
array([[ 0.,  1.,  2.,  3.],
       [ 4.,  5.,  6.,  7.],
       [ 8.,  9., 10., 11.]], dtype=float32)
>>> x.sum(axis=1)
array([ 6., 22., 38.], dtype=float32)

生の CUDA C++ カーネル

import cupy as cp

multiply_elementwise = cp.RawKernel(r'''
    extern "C" __global__
    void multiply_elementwise(const float A[4][4], const float B[4][4], float C[4][4]) {
        int y = threadIdx.y + blockIdx.y * blockDim.y;
        int x = threadIdx.x + blockIdx.x * blockDim.x;
        C[y][x] = A[y][x] * B[y][x];
    }
''', 'multiply_elementwise')
A = cp.arange(4 * 4, dtype=cp.float32).reshape(4, 4)
B = A
C = cp.zeros(A.shape, dtype=cp.float32)
multiply_elementwise((1, 1), A.shape, (A, B, C))  # ブロック数, ブロックあたりのスレッド数, 引数
print(C)  # C = A * B

上記の例はCUDAカーネルのC++の部分をPythonで書くことも出来る。

from cupyx import jit

@jit.rawkernel()
def multiply_elementwise(A, B, C):
    y, x = jit.grid(2)
    C[y, x] = A[y, x] * B[y, x]

関連項目

出典

  1. ^ cupy/LICENSE at main · cupy/cupy”. 2025年3月8日閲覧。
  2. ^ Release v1.3.0 – chainer/chainer”. 2025年3月8日閲覧。
  3. ^ Releases · cupy/cupy”. 2025年3月22日閲覧。
  4. ^ Okuta, Ryosuke; Unno, Yuya; Nishino, Daisuke; Hido, Shohei; Loomis, Crissman (2017). CuPy: A NumPy-Compatible Library for NVIDIA GPU Calculations (PDF). Proceedings of Workshop on Machine Learning Systems (LearningSys) in The Thirty-first Annual Conference on Neural Information Processing Systems (NIPS).
  5. ^ CuPy 9.0 Brings AMD GPU Support To This Numpy-Compatible Library - Phoronix”. Phoronix (2021年4月29日). 2022年6月21日閲覧。
  6. ^ AMD Leads High Performance Computing Towards Exascale and Beyond” (2021年6月28日). 2022年6月21日閲覧。 “Most recently, CuPy, an open-source array library with Python, has expanded its traditional GPU support with the introduction of version 9.0 that now offers support for the ROCm stack for GPU-accelerated computing.”
  7. ^ Preferred Networks released Version 2 of Chainer, an Open Source framework for Deep Learning - Preferred Networks, Inc.” (2017年6月2日). 2022年6月18日閲覧。

外部リンク




英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  
  •  CuPyのページへのリンク

辞書ショートカット

すべての辞書の索引

「CuPy」の関連用語

1
2% |||||

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

   

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



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

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

©2025 GRAS Group, Inc.RSS