初次尝试GUP运行python,测试代码时发现结果不好

EarAST。 2022-09-30 09:59:40

使用的时pycharm,显卡为nvidia 2060

运行网上别人写的测试代码,据他所说gpu运行速度应当比cpu快很多

 

结果我自己运行时刚好相反,我是gpu设置出错了,还是代码有问题?请大佬指点!!! 

from numba import cuda
import numpy as np
import math
from time import time


@cuda.jit
def gpu_add(a, b, result, n):
    idx = cuda.threadIdx.x + cuda.blockDim.x * cuda.blockIdx.x
    if idx < n:
        result[idx] = a[idx] + b[idx]


def main():
    n = 20000000
    x = np.arange(n).astype(np.int32)
    y = 2 * x
    # 拷贝数据到设备端
    x_device = cuda.to_device(x)
    y_device = cuda.to_device(y)
    # 在显卡设备上初始化一块用于存放GPU计算结果的空间
    gpu_result = cuda.device_array(n)
    cpu_result = np.empty(n)
    threads_per_block = 1024
    blocks_per_grid = math.ceil(n / threads_per_block)
    start = time()
    gpu_add[blocks_per_grid, threads_per_block](x_device, y_device, gpu_result, n)
    cuda.synchronize()
    print("gpu vector add time " + str(time() - start))
    start = time()
    cpu_result = np.add(x, y)
    print("cpu vector add time " + str(time() - start))
    if np.array_equal(cpu_result, gpu_result.copy_to_host()):
        print("result correct!")


if __name__ == "__main__":
    main()

 

...全文
595 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-01-09
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-Python 发布问题, 以便更快地解决您的疑问

589

社区成员

发帖
与我相关
我的任务
社区描述
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
社区管理员
  • CUDA编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧