CUDA 不支持边界检查

2024-02-03

我尝试使用 Numba 并访问 GPU 以加速代码,但出现以下错误:

in jit raise NotImplementedError("bounds checking is not supported for CUDA")
NotImplementedError: bounds checking is not supported for CUDA

我看到提出了另一个问题,但没有完全说明或回答here https://stackoverflow.com/questions/60012614/notimplementederror-bounds-checking-is-not-supported-for-cuda。 当我看到矢量化代码(y = corr*x + np.sqrt(1.-corr**2)*z)不起作用(同样的错误)。我也尝试过使用这个选项boundscheck,但这并没有改变结果。 未指定时不会出现该错误target,因为它会自动运行在 CPU 上(我猜)。

import numpy as np
from numba import jit

N = int(1e8)
@jit(nopython=True, target='cuda', boundscheck=False)
def Brownian_motions(T, N, corr):
    x = np.random.normal(0, 1, size=(T,N))
    z = np.random.normal(0, 1, size=(T,N))
    y = np.zeros(shape=(T,N))
    for i in range(T):
        for j in range(N):
            y[i,j] = corr*x[i,j] + np.sqrt(1.-corr**2)*z[i,j]
    return(x,y)

x, y = Brownian_motions(T = 500, N = N, corr = -0.45)

请你帮助我好吗? Python 是 3.7.6,Numba 是 0.48.0。


就我而言,我也替换为@jit这是使用 XLA 编译多个操作的装饰器。下面是一个示例代码,用于查看 CPU 和 GPU 的性能。

from numba import jit
import numpy as np 
# to measure exec time 
from timeit import default_timer as timer    

# normal function to run on cpu 
def func(a):                                 
    for i in range(10000000): 
        a[i]+= 1      

# function optimized to run on gpu  
@jit
#(target ="cuda")                          
def func2(a): 
    for i in range(10000000): 
        a[i]+= 1
if __name__=="__main__": 
    n = 10000000                            
    a = np.ones(n, dtype = np.float64) 
    b = np.ones(n, dtype = np.float32) 

    start = timer() 
    func(a) 
    print("without GPU:", timer()-start)     

    start = timer() 
    func2(a) 
    print("with GPU:", timer()-start) 

结果: 不带GPU:5.353004818000045 带GPU:0.23115529000006063

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CUDA 不支持边界检查 的相关文章

随机推荐

  • 性能问题:select s.* 与 select * 之间的差异

    最近我的查询性能遇到了一些问题 事情描述如下 与直接运行相比 Hibernate select 性能较差 如何调试 https stackoverflow com questions 13306548 poor hibernate sele
  • 最终用户计算机上的 C# 数据库访问需要 Microsoft Access 吗?

    也许是个愚蠢的问题 我在我的计算机上开发了一个应用程序 它使用 Microsoft Access 数据库 mdb 来访问某些信息并使用 OLEDb 用监控数据填充表 该应用程序在我的机器上运行良好 但是当我将版本放在测试机器上 没有 MS
  • `git push --force` 的其他后果?

    关于强制执行的问题和解答git push不难找到 here https stackoverflow com questions 11184267 how to push to repo after doing git commit amen
  • jQuery 使用两个按钮上下滚动 div

    我有一组简单的两个按钮 当悬停时应该使 div 上下移动以模拟滚动效果 down hover function scroll animate marginTop 50px fast up hover function scroll anim
  • rebase后Git分支出现了分歧,那么为什么要rebase呢?

    最近我收到通知说我的分支出现了分歧 就在那时 我创建了一个功能分支 将其推送到远程 并在几天后再次开始处理它时与 master 进行了 rebase git checkout b feature branch git push origin
  • 如果 url 包含以下内容,则不显示此内容

    我有一个简单的 div 如果访问者加载某个 URL 我不想加载它 它看起来像这样 问题是 它不起作用 当我加载 www url com blog 时 div stuff 仍然显示 我只是缺乏睡眠还是上述方法应该有效 如果 url 包含 bl
  • Openrefine - 根据文本将行转置为列

    我收到了来自图书馆目录的数据转储 它以 txt 格式显示 我已经能够将数据放入电子表格中 但它们都在一列中 我想将行转置为列 这一列中的数据按以下顺序排列 标题 文件类型 作者 日期 但在某些情况下 目录记录按以下顺序出现 标题 文件类型
  • 从android中的fragment管理工具栏的导航和后退按钮

    我所有的片段都是通过控制的ActionBarActivity mainActivity 在 mainActivity 内DrawerLayout已实现 所有子片段均通过抽屉布局的列表项单击推送 我面临的问题是通过抽屉布局推送片段后我想将抽屉
  • 网络自动化工具

    我意识到我需要一个成熟的浏览器自动化工具来测试用户与我们的 JavaScript 小部件库的交互 我使用 qunit 从单元测试开始 然后我不明智地开始合并越来越多的功能测试 这是一个坏主意 尝试用 JavaScript 模拟大量用户操作
  • 在 python 中比较字符串时忽略空格

    我正在使用 difflib python 包 不管我是否设置isjunk论证 计算出的比率是相同的 是不是忽略了空格的差异isjunk is lambda x x In 193 difflib SequenceMatcher isjunk
  • 如何在Marklogic中使用Group By?

    我想在 xquery 中使用 Group By 有人可以告诉我如何在 Marklogic 中使用 Group By 吗 或者 您可以使用调用 XSLTxdmp xslt invoke or xdmp xslt eval MarkLogic
  • Pydev:将标准输出发送到真实(tty)终端

    跟进上一个问题 子进程 PyDev 控制台与 cmd exe https stackoverflow com questions 10236260 subprocess pydev console vs cmd exe 有没有办法改变 Py
  • 将警告转换为错误

    在 Windows 中 VC 有一个不错的选择 We http msdn microsoft com en us library thxezb7y aspx将特定警告转换为错误 此外 VC 发出的每个警告都有一个警告编号 例如 warnin
  • 如何将 Reader monad 添加到 Scotty 的 monad 中?

    我正在尝试使用 Scotty 构建一个非常简单的 API 我想扩展 Scotty monad 以便我的路由处理程序操作能够访问不变的环境 我相信做到这一点的方法是添加一个Readermonad 到堆栈 现在我只想传递一些Text周围的数据
  • 如何在 php 中添加形状文件 (.shp) 并在 php 文件中使用该形状文件数据?

    我必须在 php 中开发一个项目 并且必须包含形状文件 并且该形状文件需要转换为 kml 文件 我知道如何将形状文件转换为 kml 文件 但我不知道如何将形状文件导入 导入到 php 项目中 我还有包含更多信息的形状文件的支持文件 其中一些
  • 使用python访问google

    我怎样才能访问谷歌 我试过那个代码 urllib urlopen http www google com 但它显示消息prove you are human或者有些人的想法是这样的 有人说尝试用户代理 我不知道 您应该使用谷歌应用程序编程接
  • 在本地计算机上编译 Azure Functions(.csx 文件)

    我正在使用 AzureQueue 触发器模板 最好在本地计算机中编写函数 编译并执行它 然后部署 而不是在 azure 门户中编写它 有什么办法可以做到吗 Thanks Krishh 答案是肯定的 但目前体验并不好 随着我们增强服务 本地开
  • Alamofire HTTPS 10.3 中的更改

    我目前正在一个项目中使用 Alamofire 并且看到了有关具有不同功能的 10 3 beta 的问题 我有一个在 iOS 10 2 模拟器中运行良好的相同项目 我使用自签名证书向 HTTPS url 发出 get 请求 当我在安装了相同证
  • 如何打印 groupby 对象

    我想打印与 Pandas 分组的结果 我有一个数据框 import pandas as pd df pd DataFrame A one one two three three one B range 6 print df A B 0 on
  • CUDA 不支持边界检查

    我尝试使用 Numba 并访问 GPU 以加速代码 但出现以下错误 in jit raise NotImplementedError bounds checking is not supported for CUDA NotImplemen