Skip to content

Instantly share code, notes, and snippets.

@bjpcjp
Last active May 15, 2026 22:03
Show Gist options
  • Select an option

  • Save bjpcjp/c85fa4214c1b59c3aa578a6e8e9d871c to your computer and use it in GitHub Desktop.

Select an option

Save bjpcjp/c85fa4214c1b59c3aa578a6e8e9d871c to your computer and use it in GitHub Desktop.
CuPy tutorial notebook
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"id": "d3fe1a37-785a-48b7-a5b7-080445dfc972",
"metadata": {},
"source": [
"### [tutorial source:](https://www.marktechpost.com/2026/05/14/a-coding-implementation-to-master-gpu-computing-with-cupy-custom-cuda-kernels-streams-sparse-matrices-and-profiling/)\n",
"### [CuPy home:](https://docs.cupy.dev/en/stable/)"
]
},
{
"cell_type": "markdown",
"id": "d2de8e81-5cb5-4937-9430-e9fca01558f8",
"metadata": {},
"source": [
"- We __setup [CuPy](https://docs.cupy.dev/en/stable/index.html), NumPy, Matplotlib, [sparse utilities](https://docs.cupy.dev/en/stable/reference/scipy_sparse.html), [image-processing tools](https://docs.cupy.dev/en/stable/reference/scipy_ndimage.html), and [JIT support](https://docs.cupy.dev/en/stable/reference/generated/cupyx.jit._interface._JitRawKernel.html#)__\n",
"- We __define helper functions__ for section headers and reliable benchmarking\n",
"- We __inspect the available CUDA device__ to understand the GPU environment.\n",
"- We __compare NumPy and CuPy for large matrix multiplication and FFT operations__ to observe the performance difference between CPU-based and GPU-accelerated computation."
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "3a8c3305-53b9-47b2-9a32-1a16bf2f8df1",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"================================================================\n",
"1. GPU INTROSPECTION\n",
"================================================================\n",
"CuPy version : 14.0.1\n",
"CUDA runtime : 12090\n",
"Device : NVIDIA GeForce RTX 3060 Laptop GPU\n",
"Compute capability : 8.6\n",
"SMs : 30\n",
"Global memory : 6.09 GB\n",
"\n",
"================================================================\n",
"2. NUMPY vs CUPY BENCHMARK\n",
"================================================================\n",
"Matmul 4096x4096 NumPy= 307.1 ms CuPy= 25.0 ms (12.3x)\n",
"FFT 2^21 NumPy= 56.5 ms CuPy= 0.3 ms (206.9x)\n"
]
}
],
"source": [
"import sys, time, subprocess\n",
"\n",
"try:\n",
" import cupy as cp\n",
"except ImportError:\n",
" subprocess.check_call([sys.executable, \"-m\", \"pip\", \"install\", \"-q\", \"cupy-cuda12x\"])\n",
" import cupy as cp\n",
" \n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from cupyx.scipy import sparse as cps # sparse ops\n",
"from cupyx.scipy import ndimage as cdi # image utils\n",
"from cupyx import jit # JIT support\n",
"\n",
"def header(t): print(\"\\n\" + \"=\"*64 + f\"\\n{t}\\n\" + \"=\"*64)\n",
" \n",
"def bench(fn, *args, n=5, warmup=2, gpu=True):\n",
" for _ in range(warmup): fn(*args)\n",
" if gpu: cp.cuda.Stream.null.synchronize()\n",
" t0 = time.perf_counter()\n",
" for _ in range(n): r = fn(*args)\n",
" if gpu: cp.cuda.Stream.null.synchronize()\n",
" return (time.perf_counter() - t0) / n\n",
" \n",
"header(\"1. GPU INTROSPECTION\")\n",
"props = cp.cuda.runtime.getDeviceProperties(0)\n",
"\n",
"print(f\"CuPy version : {cp.__version__}\")\n",
"print(f\"CUDA runtime : {cp.cuda.runtime.runtimeGetVersion()}\")\n",
"print(f\"Device : {props['name'].decode()}\")\n",
"print(f\"Compute capability : {props['major']}.{props['minor']}\")\n",
"print(f\"SMs : {props['multiProcessorCount']}\")\n",
"print(f\"Global memory : {props['totalGlobalMem']/1e9:.2f} GB\")\n",
"\n",
"header(\"2. NUMPY vs CUPY BENCHMARK\")\n",
"\n",
"N = 4096\n",
"A_np = np.random.rand(N, N).astype(np.float32)\n",
"B_np = np.random.rand(N, N).astype(np.float32)\n",
"A_cp, B_cp = cp.asarray(A_np), cp.asarray(B_np)\n",
"t_np = bench(np.matmul, A_np, B_np, n=2, gpu=False)\n",
"t_cp = bench(cp.matmul, A_cp, B_cp, n=3, gpu=True)\n",
"\n",
"print(f\"Matmul {N}x{N} NumPy={t_np*1000:7.1f} ms CuPy={t_cp*1000:7.1f} ms ({t_np/t_cp:.1f}x)\")\n",
"\n",
"x_np = np.random.rand(2**21).astype(np.complex64)\n",
"x_cp = cp.asarray(x_np)\n",
"t_np = bench(np.fft.fft, x_np, n=3, gpu=False)\n",
"t_cp = bench(cp.fft.fft, x_cp, n=5, gpu=True)\n",
"\n",
"print(f\"FFT 2^21 NumPy={t_np*1000:7.1f} ms CuPy={t_cp*1000:7.1f} ms ({t_np/t_cp:.1f}x)\")"
]
},
{
"cell_type": "markdown",
"id": "8a5cbd77-7125-4fd2-bbea-8058b2f4ff84",
"metadata": {},
"source": [
"- We __examine [CuPy’s memory pool](https://docs.cupy.dev/en/stable/reference/generated/cupy.cuda.MemoryPool.html#cupy.cuda.MemoryPool)__ to understand how GPU memory is allocated, reused, and released during execution.\n",
"- We __create a custom [ElementwiseKernel](https://docs.cupy.dev/en/stable/reference/generated/cupy.ElementwiseKernel.html)__ to perform a per-element robust distance calculation directly on the GPU.\n",
"- We __define a custom [ReductionKernel](https://docs.cupy.dev/en/stable/reference/generated/cupy.ReductionKernel.html)__ for L2 norm computation and __compare its result with CuPy’s built-in linear algebra function__."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "232a5c87-2015-414f-9cb7-e8391a6a9551",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"================================================================\n",
"3. MEMORY POOL\n",
"================================================================\n",
"Used : 167.77 MB\n",
"Total : 268.44 MB\n",
"After free_all_blocks → Used: 16.78 MB\n",
"\n",
"================================================================\n",
"4. ELEMENTWISE KERNEL\n",
"================================================================\n",
"Output shape=(2000000,) mean=0.33350\n",
"\n",
"================================================================\n",
"5. REDUCTION KERNEL — L2 NORM\n",
"================================================================\n",
"Custom : 1291.038818\n",
"cupy : 1291.038940\n"
]
}
],
"source": [
"header(\"3. MEMORY POOL\")\n",
"pool = cp.get_default_memory_pool()\n",
"pinned = cp.get_default_pinned_memory_pool()\n",
"\n",
"print(f\"Used : {pool.used_bytes()/1e6:8.2f} MB\")\n",
"print(f\"Total : {pool.total_bytes()/1e6:8.2f} MB\")\n",
"\n",
"del A_cp, B_cp, x_cp\n",
"pool.free_all_blocks(); pinned.free_all_blocks()\n",
"print(f\"After free_all_blocks → Used: {pool.used_bytes()/1e6:.2f} MB\")\n",
"\n",
"header(\"4. ELEMENTWISE KERNEL\")\n",
"robust_norm = cp.ElementwiseKernel(\n",
" in_params ='float32 x, float32 y, float32 eps',\n",
" out_params='float32 z',\n",
" operation ='z = sqrtf((x - y)*(x - y) + eps)',\n",
" name ='robust_norm')\n",
"\n",
"x = cp.random.rand(2_000_000, dtype=cp.float32)\n",
"y = cp.random.rand(2_000_000, dtype=cp.float32)\n",
"z = robust_norm(x, y, cp.float32(1e-6))\n",
"\n",
"print(f\"Output shape={z.shape} mean={float(z.mean()):.5f}\")\n",
"\n",
"header(\"5. REDUCTION KERNEL — L2 NORM\")\n",
"l2 = cp.ReductionKernel(\n",
" in_params = 'T x',\n",
" out_params = 'T y',\n",
" map_expr = 'x * x',\n",
" reduce_expr = 'a + b',\n",
" post_map_expr = 'y = sqrt(a)',\n",
" identity = '0',\n",
" name = 'l2norm')\n",
"\n",
"v = cp.random.rand(5_000_000, dtype=cp.float32)\n",
"\n",
"print(f\"Custom : {float(l2(v)):.6f}\")\n",
"print(f\"cupy : {float(cp.linalg.norm(v)):.6f}\")"
]
},
{
"cell_type": "markdown",
"id": "aebde741-06db-45b1-93ce-f030587fbe92",
"metadata": {},
"source": [
"- We use a __raw CUDA C kernel through CuPy’s [RawKernel](https://docs.cupy.dev/en/stable/reference/generated/cupy.RawKernel.html) interface__ to __compute the Mandelbrot set directly on the GPU__.\n",
"- We __launch the kernel__ with custom thread and block dimensions, __[synchronize execution](https://docs.cupy.dev/en/stable/reference/generated/cupy.cuda.Stream.html)__, and __visualize the resulting fractal__ using Matplotlib.\n",
"- We also __explore CUDA streams__ by __running two independent matrix multiplications concurrently__ and __checking the output means from both streams__."
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "70ae39da-4aa8-4870-9dd4-acbeb7392079",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"================================================================\n",
"6. RAW CUDA KERNEL — MANDELBROT\n",
"================================================================\n",
"Mandelbrot done. max iter reached=400\n"
]
},
{
"data": {
"image/png": "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5z3veXzzm99s3BH95Cc/oaenh9e97nV85jOfGfGcT3/607ziFa/g93//96lWq3zrW9/iNa95DTfddNOID/Wuu+7i+9//Pu985zvJ5/N85jOf4dWvfjU7duxgwYIFADz66KO88IUvpK2tjQ996EOEYcgHP/hBFi9ePOLcH/3oR3n/+9/PNddcw1vf+lba29v57Gc/y8UXX8xDDz1Ec3PzYV/v//zP/9DX18e73vUuyuUyn/70p3n+85/Po48+OuR8YRhy5ZVXctFFF/GJT3yCTCaDMYZXvOIV3H777bzlLW/hnHPO4ZZbbuG9730vu3fv5lOf+hQA//u//8tb3/pWzjvvPN7+9rcDsG7dujHX9J//+Z+8+93v5uqrr+bP//zPKZfLPPLII9x3332NG6H9+/fz3Oc+t3Fj09bWxk9+8hPe8pa30Nvby1/8xV9w2mmn8eEPf5gPfOADvP3tb2/84C+44ILDvidTwSOPPML69euxbZu3v/3trFmzhi1btvDjH/+Yj370o0AiQOvXr6dQKPC+970P27b54he/yKWXXsqvfvUrzj///CHH/LM/+zOWLFnCddddx7333suXvvQlmpubueeee1i1ahUf+9jHuPnmm/n4xz/OmWeeyRve8IYhzx/vZ38k2tra+I//+A/+5E/+hFe+8pWNC+PZZ5/deF0XXnghy5cv52//9m/JZrN85zvf4aqrruKGG27gla98JQD79u3jsssuIwzDxn5f+tKX8H3/iGu46KKLEBHuuOOOxnnvvPNOlFJDcjza29vZsGEDf/qnfzrqcS6++GLe/e5385nPfIa///u/57TTTgNo/Bdg8+bNXH311bzlLW/hjW98I1/5yld405vexLnnnssZZ5xx2HVO5FoxmE2bNrFhwwbe/OY3k8/nj/h+TAZ1YVywYAFXX30173rXu7j++ut55jOfOWS/66+/nksvvZTly5dP+Bz1m4SWlpbGtt7eXv7rv/6L17/+9bztbW+jr6+PL3/5y1x55ZXcf//9jbDS+vXr+eY3v9l4XmdnJ48//jhKKe68884h34O2trYhnyEkBsSLX/xiHnjgAb73ve+NyPUZzzVmMP/4j/+I4zi85z3voVKp4DgOAFEUceWVV3L++efziU98gltvvZVPfvKTrFu3jj/5kz9pPP8d73gHX/va1/ijP/oj3v3ud7N161Y+97nP8dBDD3H33XePeuM1LZhp4qtf/aoBzAMPPGA+97nPmXw+b4rFojHGmNe85jXmsssuM8YYs3r1avPSl750yHPr+9WpVqvmzDPPNM9//vOHbAeM4zhm8+bNjW0PP/ywAcxnP/vZxrarrrrKeJ5ntm/f3tj2xBNPGK21GfyWbNu2zWitzUc/+tEh53n00UeNZVlDtr/xjW80q1evbvy9detWAxjf982uXbsa2++77z4DmL/8y78c8lzA/O3f/u2Q89x4440GMB/5yEeGbL/66quNiAx5ndls1rzxjW804+H3fu/3zBlnnHHYfd7ylreYpUuXmoMHDw7Z/rrXvc40NTU1PpMHHnjAAOarX/3quM49VVx88cUmn88P+UyNMSaO48b/v+qqq4zjOGbLli2NbXv27DH5fN5cfPHFjW317+qVV1455PnPe97zjIiYP/7jP25sC8PQrFixwlxyySWNbRP57C+55JIhz60z/PvU3t5uAPPBD35wxL6XX365Oeuss0y5XB7yui+44AJz0kknNbb9xV/8hQHMfffd19h24MAB09TUZACzdevWEccezBlnnGGuueaaxt/PetazzGte8xoDmCeffNIYY8z3v/99A5iHH364sd/q1auHfDe/+93vGsDcfvvtI86xevVqA5g77rhjyBpd1zV//dd/fdj1GTP+a8VwfvjDHxrAfOpTnzriOYw59B0Z/p7dfvvtI17bG9/4RpPNZk17e7tpb283mzdvNh/72MeMiJizzz67sd/rX/96s2zZMhNFUWPbgw8+OK7fV309t956q2lvbzc7d+403/ve90xbW5txXdfs3LmzsW8YhqZSqQx5fldXl1m8eLF585vf3NhW/5yeeOIJY4wxP/rRj4zruuYVr3iFee1rX9vY7+yzzzavfOUrR6xl9erVxrZtc+ONN4665vFeY+rv6dq1a0d8vvVr54c//OEh25/5zGeac889t/H3nXfeaQBz/fXXD9nvpz/96YjtY/0mp4oZcahfc801lEolbrrpJvr6+rjpppsOm+ww+E69q6uLnp4e1q9fz4MPPjhi3yuuuGKIFXj22WdTKBR4+umngeSu6ZZbbuGqq65i1apVjf1OO+00rrzyyiHH+v73v08cx1xzzTUcPHiw8W/JkiWcdNJJI9w3o3HVVVcNuYM977zzOP/887n55ptH7Dv4rg3g5ptvRmvN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+EUqlQr/7//9v0lf03g++ze/+c3867/+K1deeSVvectbOHDgAF/4whc444wzhiSK+b7P6aefzre//W1OPvlkWltbOfPMMznzzDP593//dy666CLOOuss3va2t7F27Vr279/Pr3/9a3bt2sXDDz8MwPve9z7+93//lxe96EX8+Z//eaNEafXq1eP+La1fv57rr78eEWm4p7XWXHDBBdxyyy1ceumljaSfsTjnnHPQWvMv//Iv9PT04Louz3/+88eM142XY71WvPa1r+XRRx/lox/9KA899BCvf/3rGx2zfvrTn3Lbbbc13NpnnHEGz33uc/m7v/s7Ojs7aW1t5Vvf+tao4j1R3vCGNzSuKxNxRY/Fe9/7Xl7zmtfwta99jT/+4z/mZS97Gd///vd55StfyUtf+lK2bt3KF77wBU4//XT6+/uHPPfEE09kyZIlbNy4kT/7sz9rbL/44ov5m7/5G4AjijAkns///M//5M1vfjOveMUr+OlPfzrua8xkcMkll/COd7yDf/qnf+J3v/sdL3zhC7Ftm02bNvHd736XT3/604fNS5pSpisNe3CJ0uEYrUTpy1/+sjnppJOM67rm1FNPNV/96lfNBz/4QTN8+YB517veNeoxh5fv/OpXvzLnnnuucRzHrF271nzhC18Y9ZjGGHPDDTeYiy66yGSzWZPNZs2pp55q3vWud5mNGzc29hmrROnjH/+4+eQnP2lWrlxpXNc169evH1K+UX9uNpsd9f3o6+szf/mXf2mWLVtmbNs2J510kvn4xz8+pHTGGGM2bNhgLr74YuP7vgEOW670xS9+0Vx88cVmwYIFxnVds27dOvPe977X9PT0DNlv//795l3vepdZuXKlsW3bLFmyxFx++eXmS1/60pD9fvjDH5rTTz/dWJY1o+VKjz32mHnlK19pmpubjed55pRTTjHvf//7h+zz4IMPmiuvvNLkcjmTyWTMZZddZu65554h+4z1Xa1/P9rb24dsH/75TeSzN8aYr3/962bt2rXGcRxzzjnnmFtuuWXE98kYY+65557Gd5Zh5Upbtmwxb3jDG8ySJUuMbdtm+fLl5mUve5n53ve+N+QYjzzyiLnkkkuM53lm+fLl5h//8R/Nl7/85XGVKBljzOOPP24Ac9pppw3Z/pGPfMQAI95vY0b//f3nf/6nWbt2baMssF7SM9rv35jxl42M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",
"text/plain": [
"<Figure size 600x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"================================================================\n",
"7. CUDA STREAMS\n",
"================================================================\n",
"Stream-1 mean=499.9874\n",
"Stream-2 mean=500.0977\n"
]
}
],
"source": [
"header(\"6. RAW CUDA KERNEL — MANDELBROT\")\n",
"\n",
"mandel = cp.RawKernel(r'''\n",
"extern \"C\" __global__\n",
"void mandel(float xmin, float xmax, float ymin, float ymax,\n",
" int W, int H, int max_iter, int* out) {\n",
" int ix = blockDim.x * blockIdx.x + threadIdx.x;\n",
" int iy = blockDim.y * blockIdx.y + threadIdx.y;\n",
" if (ix >= W || iy >= H) return;\n",
" float cx = xmin + (xmax - xmin) * ix / (W - 1);\n",
" float cy = ymin + (ymax - ymin) * iy / (H - 1);\n",
" float zx = 0.f, zy = 0.f;\n",
" int it = 0;\n",
" while (zx*zx + zy*zy < 4.f && it < max_iter) {\n",
" float t = zx*zx - zy*zy + cx;\n",
" zy = 2.f*zx*zy + cy;\n",
" zx = t; ++it;\n",
" }\n",
" out[iy*W + ix] = it;\n",
"}\n",
"''', 'mandel')\n",
"\n",
"W, H, ITER = 1024, 1024, 400\n",
"img = cp.zeros((H, W), dtype=cp.int32)\n",
"threads = (16, 16)\n",
"blocks = ((W + 15)//16, (H + 15)//16)\n",
"\n",
"mandel(blocks, threads,\n",
" (cp.float32(-2.0), cp.float32(1.0),\n",
" cp.float32(-1.5), cp.float32(1.5),\n",
" W, H, ITER, img))\n",
"\n",
"cp.cuda.Stream.null.synchronize()\n",
"print(f\"Mandelbrot done. max iter reached={int(img.max())}\")\n",
"plt.figure(figsize=(6,6))\n",
"plt.imshow(cp.asnumpy(cp.log1p(img)), cmap='twilight_shifted', extent=[-2,1,-1.5,1.5])\n",
"plt.title(\"Mandelbrot set — computed with a CuPy RawKernel\")\n",
"plt.axis('off'); plt.show()\n",
"\n",
"header(\"7. CUDA STREAMS\")\n",
"s1, s2 = cp.cuda.Stream(non_blocking=True), cp.cuda.Stream(non_blocking=True)\n",
"with s1:\n",
" a1 = cp.random.rand(2000, 2000, dtype=cp.float32)\n",
" b1 = cp.random.rand(2000, 2000, dtype=cp.float32)\n",
" c1 = a1 @ b1\n",
"with s2:\n",
" a2 = cp.random.rand(2000, 2000, dtype=cp.float32)\n",
" b2 = cp.random.rand(2000, 2000, dtype=cp.float32)\n",
" c2 = a2 @ b2\n",
"s1.synchronize(); s2.synchronize()\n",
"print(f\"Stream-1 mean={float(c1.mean()):.4f}\")\n",
"print(f\"Stream-2 mean={float(c2.mean()):.4f}\")"
]
},
{
"cell_type": "markdown",
"id": "fa2462a0-cb5b-4af3-8f32-593be8f23b82",
"metadata": {},
"source": [
"- We use __sparse linear algebra__ by generating a __[random sparse CSR matrix](https://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.csr_matrix.html)__ and __comparing sparse matrix-vector multiplication with dense multiplication__.\n",
"- We __solve a large symmetric positive definite linear system__ using __CuPy’s dense linear algebra tools__ and __verify the solution__ through a __relative residual__.\n",
"- We __apply a Gaussian filter__ to a __large image-like array on the GPU__ and __demonstrate interoperability__ between __NumPy, CuPy, and DLPack__ for data movement and zero-copy exchange."
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "2c683c95-ada6-4ef1-9ce4-055fee95635d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"================================================================\n",
"8. SPARSE LINEAR ALGEBRA\n",
"================================================================\n",
"NNZ : 31992\n",
"Sparse matvec : 0.040 ms\n",
"Dense matvec : 0.793 ms\n",
"\n",
"================================================================\n",
"9. LINEAR SYSTEM Ax = b\n",
"================================================================\n",
"Solved 2000x2000 SPD system. Relative residual = 1.47e-06\n",
"\n",
"================================================================\n",
"10. GAUSSIAN FILTER ON GPU\n",
"================================================================\n",
"4096x4096 Gaussian σ=5 → 13.48 ms\n",
"\n",
"================================================================\n",
"11. INTEROP & ZERO-COPY (DLPack)\n",
"================================================================\n",
"NumPy view : [0. 1. 2. 3. 4. 5. 6. 7.]\n",
"DLPack RT : [0. 1. 2. 3. 4. 5. 6. 7.]\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/tmp/ipykernel_335462/505311377.py:37: VisibleDeprecationWarning: This function is deprecated and will be removed in a future release. Use the cupy.from_dlpack() array constructor instead.\n",
" dl = g.toDlpack()\n"
]
}
],
"source": [
"header(\"8. SPARSE LINEAR ALGEBRA\")\n",
"N, density = 8000, 5e-4\n",
"nnz = int(N*N*density)\n",
"data = cp.random.rand(nnz, dtype=cp.float32)\n",
"rows = cp.random.randint(0, N, nnz)\n",
"cols = cp.random.randint(0, N, nnz)\n",
"A_sp = cps.csr_matrix((data, (rows, cols)), shape=(N, N))\n",
"xv = cp.random.rand(N, dtype=cp.float32)\n",
"\n",
"print(f\"NNZ : {A_sp.nnz}\")\n",
"print(f\"Sparse matvec : {bench(lambda: A_sp @ xv)*1000:.3f} ms\")\n",
"\n",
"A_dense = A_sp.toarray()\n",
"\n",
"print(f\"Dense matvec : {bench(lambda: A_dense @ xv)*1000:.3f} ms\")\n",
"\n",
"header(\"9. LINEAR SYSTEM Ax = b\")\n",
"N = 2000\n",
"M = cp.random.rand(N, N, dtype=cp.float32)\n",
"A = M @ M.T + N * cp.eye(N, dtype=cp.float32)\n",
"b = cp.random.rand(N, dtype=cp.float32)\n",
"x_sol = cp.linalg.solve(A, b)\n",
"res = cp.linalg.norm(A @ x_sol - b) / cp.linalg.norm(b)\n",
"\n",
"print(f\"Solved {N}x{N} SPD system. Relative residual = {float(res):.2e}\")\n",
"\n",
"header(\"10. GAUSSIAN FILTER ON GPU\")\n",
"big = cp.random.rand(4096, 4096, dtype=cp.float32)\n",
"t = bench(cdi.gaussian_filter, big, 5.0, n=3)\n",
"\n",
"print(f\"4096x4096 Gaussian σ=5 → {t*1000:.2f} ms\")\n",
"\n",
"header(\"11. INTEROP & ZERO-COPY (DLPack)\")\n",
"g = cp.arange(8, dtype=cp.float32)\n",
"h = cp.asnumpy(g)\n",
"back = cp.asarray(h)\n",
"dl = g.toDlpack()\n",
"restored = cp.from_dlpack(dl)\n",
"\n",
"print(f\"NumPy view : {h}\")\n",
"print(f\"DLPack RT : {restored}\")"
]
},
{
"cell_type": "markdown",
"id": "5de97c62-94f3-4a9d-b3ff-1b02f731d1cb",
"metadata": {},
"source": [
"- We __profile a large GPU matrix multiplication__ using __CUDA events__ to obtain accurate device-side timing.\n",
"- We then write a __SAXPY kernel with cupyx.jit__, launch it manually, and verify its correctness against the equivalent CuPy expression. Also, we __use @cp.fuse to combine multiple array operations into a fused kernel__ and compare its speed with the unfused version."
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "03c1b0eb-567b-495a-bfef-5247584b564a",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"================================================================\n",
"12. CUDA EVENTS\n",
"================================================================\n",
"4000x4000 matmul = 20.174 ms (CUDA events)\n",
"\n",
"================================================================\n",
"13. cupyx.jit — SAXPY\n",
"================================================================\n",
"Correctness: True\n",
"\n",
"================================================================\n",
"14. KERNEL FUSION with @cp.fuse\n",
"================================================================\n",
"Unfused : 1.404 ms\n",
"Fused : 0.203 ms (speedup 6.91x)\n",
"\n",
"================================================================\n",
"DONE — explore: cupy.linalg, cupyx.scipy.signal, cupy.cuda.Graph\n",
"================================================================\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/bjpcjp/venv/lib/python3.12/site-packages/cupyx/jit/_interface.py:247: FutureWarning: cupyx.jit.rawkernel is experimental. The interface can change in the future.\n",
" cupy._util.experimental('cupyx.jit.rawkernel')\n"
]
}
],
"source": [
"header(\"12. CUDA EVENTS\")\n",
"A = cp.random.rand(4000, 4000, dtype=cp.float32)\n",
"B = cp.random.rand(4000, 4000, dtype=cp.float32)\n",
"e0, e1 = cp.cuda.Event(), cp.cuda.Event()\n",
"e0.record(); C = A @ B; e1.record(); e1.synchronize()\n",
"print(f\"4000x4000 matmul = {cp.cuda.get_elapsed_time(e0, e1):.3f} ms (CUDA events)\")\n",
"header(\"13. cupyx.jit — SAXPY\")\n",
"@jit.rawkernel()\n",
"def saxpy(a, x, y, out, n):\n",
" tid = jit.blockIdx.x * jit.blockDim.x + jit.threadIdx.x\n",
" if tid < n:\n",
" out[tid] = a * x[tid] + y[tid]\n",
"n = 2_000_000\n",
"xv = cp.random.rand(n, dtype=cp.float32)\n",
"yv = cp.random.rand(n, dtype=cp.float32)\n",
"out = cp.empty_like(xv)\n",
"TPB = 256\n",
"blocks = (n + TPB - 1) // TPB\n",
"saxpy((blocks,), (TPB,), (cp.float32(2.5), xv, yv, out, n))\n",
"print(\"Correctness:\", bool(cp.allclose(out, 2.5*xv + yv)))\n",
"header(\"14. KERNEL FUSION with @cp.fuse\")\n",
"@cp.fuse()\n",
"def fused(x, y, z):\n",
" return cp.sqrt(x*x + y*y + z*z) * cp.exp(-0.5*(x+y+z))\n",
"def unfused(x, y, z):\n",
" return cp.sqrt(x*x + y*y + z*z) * cp.exp(-0.5*(x+y+z))\n",
"n = 4_000_000\n",
"x = cp.random.rand(n, dtype=cp.float32)\n",
"y = cp.random.rand(n, dtype=cp.float32)\n",
"z = cp.random.rand(n, dtype=cp.float32)\n",
"fused(x, y, z)\n",
"t1 = bench(unfused, x, y, z)\n",
"t2 = bench(fused, x, y, z)\n",
"print(f\"Unfused : {t1*1e3:6.3f} ms\")\n",
"print(f\"Fused : {t2*1e3:6.3f} ms (speedup {t1/t2:.2f}x)\")\n",
"print(\"\\n\" + \"=\"*64)\n",
"print(\"DONE — explore: cupy.linalg, cupyx.scipy.signal, cupy.cuda.Graph\")\n",
"print(\"=\"*64)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "477d8ab3-83fc-4f3d-aeca-a2313dde6ba7",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.3"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment