Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >库达错误-虚拟函数,继承,新运算符

库达错误-虚拟函数,继承,新运算符
EN

Stack Overflow用户
提问于 2015-03-26 08:06:22
回答 1查看 223关注 0票数 1

使用OOP CUDA代码,我在全局函数中使用对象创建有奇怪的行为

CUDA设备: Tesla C2075,计算能力: 2.0

没有新的操作符,一切都能工作。

使用新运算符->失败: CUDA_ERROR_NO_BINARY_FOR_GPU

见代码:

BaseClass:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Base
{
public: 
    float PositionX;
    float PositionY;
    float PositionZ;


public:
    __device__ Base()
    {
    }

    __device__  void SetPosition(float x, float y, float z) 
    {
        PositionX = x;
        PositionY = y;
        PositionZ = z;
    }


    __device__ virtual void setCode(float r);
    __device__ virtual void getCode(float q);

};

1衍生:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class  Box : public  Base
{
public:

    bool myIsVisible;
    float code;

public:


    __device__ Box()
    {
    }

    __device__  void setCode(float r) override
    {
        code = r;
    }


    __device__  void getCode(float a) override
    {
        a = code ;
    }

}

2衍生:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class  Sphere : public  Base
{

public:

    bool myIsVisible;
    float code;

public:


    __device__ Sphere()
    {
    }

    __device__  void setCode(float r) override
    {
        code = r;
    }
    __device__  void getCode(float a) override
    {
        a = code;
    }

}

AAANDe的内核最终处于错误状态:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 __global__ void CreateSphere(size_t *objectHandle_in)
{   
    Sphere *aObject = new Sphere();  

}

状态良好:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 __global__ void CreateSphere(size_t *objectHandle_in)
{   
    Sphere *aObject ;  

}

来自数据自动化系统方案编制指南:

当派生类中的函数重写基类中的虚拟函数时,重写和重写函数上的执行空间限定符(即主机device)必须匹配。 它不允许作为参数传递给全局函数,它是具有虚拟函数的类的对象。编译器将虚拟函数表放置在全局或常量内存中。

但是我只创建了这个对象,在这个场景中,它也失败了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
__device__ creatDevSphere()
    {
    Sphere *aObject  = new Sphere();  
    }

  __global__ void CreateSphere(size_t *objectHandle_in)
    {   
        creatDevSphere();

    }

我知道新运算符在CC中是可用的,2.0...or不是吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-26 11:25:57

我想您使用的是CUDA 7,因为您使用了C++11功能。setCodegetCode方法要么需要在Base类中实现,要么它们必须是纯虚拟的。

这对我来说很管用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
__device__ virtual void setCode(float r) = 0;
__device__ virtual void getCode(float q) = 0;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29283418

复制
相关文章
maven pom文件配置加载lib下的jar包
项目需要引用第三方放在lib的jar,所以需要进行配置,不过最好还是放在公司自己的maven私服里
SmileNicky
2022/05/07
1K0
maven加载lib下的jar包
           <plugin>                 <groupId>org.apache.maven.plugins</groupId>                 <artifactId>maven-compiler-plugin</artifactId>                 <version>3.7.0</version>                 <configuration>                     <source>1.8</source>
似水的流年
2019/12/07
1.2K0
maven工具引入lib下的jar文件
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <executable>true</executable><!-- 直接运行,注册服务 -->
JQ实验室
2022/02/10
6770
maven依赖json-lib的jar包导入失败
maven仓库中配置了中央仓库http://central.maven.org/maven2/的镜像,但是json-lib包还是引入失败:
青山师
2023/05/05
7520
maven打包出来的jar包引入的其他jar包版本不是pom文件配置的版本
        项目上使用flyway来管理数据库版本,但是遇到了一件奇怪的事,这件事发生的时间点是springboot从2.3.12升级到2.6.7版本,升级后到底发生了什么,到底是谁引入了flyway 8.0.5版本呢,博主在pom中显示引入的flyway版本为7.1.1,在这个公共jar包里面执行mvn dependency:tree看到的flyway版本也是7.1.1,为什么这个公共jar包被其他项目引入后执行mvn dependency:tree却显示 flyway的版本为8.0.5,而且显示也是由这个公共jar包引入的。
johnhuster的分享
2023/10/16
3260
解决:打包SpringBoot项目成jar包后,其他的项目无法引入jar包中的对象
需求描述 因为最近想把一块东西封装成一个jar包,这样的话,在多个项目中就可以公共了。 就创建了一个SpringBoot项目,去掉了web模块。 遇到的问题 使用maven打包之后,但是其他引入了这个
手撕代码八百里
2020/10/26
2K0
解决SpringBoot jar包中的文件读取问题
SpringBoot微服务已成为业界主流,从开发到部署都非常省时省力,但是最近小明开发时遇到一个问题:在代码中读取资源文件(比如word文档、导出模版等),本地开发时可以正常读取 ,但是,当我们打成jar包发布到服务器后,再次执行程序时就会抛出找不到文件的异常。
程序员小明
2020/08/27
3.2K0
maven打包时打包指定的lib文件夹
然后cmd切换到项目根路径执行打包命令:mvn clean package -Dmaven.test.skip=true
全栈程序员站长
2022/09/02
3.3K0
maven中 引入jar报错:Missing artifact net.sf.json-lib:json-lib:jar:2.4
今天要引入json包,发现报了这个错 Missing artifact net.sf.json-lib:json-lib:jar:2.4 一开始以为是本地仓库从中央仓库下载jar的时间过久的时候,我直接强制终止了,导致从中央仓库下载jar包失败,然后我把本地仓库 net.sf.json-lib:json-lib的文件夹删了,重新导入还是不行
秋白
2019/02/21
3.2K0
maven中 引入jar报错:Missing artifact net.sf.json-lib:json-lib:jar:2.4
包和 jar 文件的创建
在之前的文章中,讲到了面向的 3 大特性(封装、继承、多态)和面向对象设计的 5 大原则(SRP、OCP、LSP、DIP、ISP)。此外,我们还讲了如何创建一个类,并且在创建类后如何构造一个对象。然后还介绍了类中的属性和方法,并对构造方法和引用也做了简单的讲解。
村雨遥
2022/10/28
9020
包和 jar 文件的创建
jar包为什么要放在web-inf的lib下?
为什么jar包一定放在lib文件夹下面,我换个地方就不行。这个其实如果你不是用服务器是没有任何问题的,但是当你使用了web服务器类似于tomcat这种,那么你就要小心了。jar包导入工作空间这个是由我们人为控制的,我导哪个空间就有哪个,我不导行不行,可以,编译器会自动去寻找他所需要的jar包,但是服务器就不会他只会去寻找lib文件夹下的jar包并将他们拷贝到服务器上(就是在你服务器的当前项目的lib文件夹)
wuweixiang
2018/08/14
1.3K0
jar包为什么要放在web-inf的lib下?
android 自己制作Jar包 和 修改 现成的 Jar包文件
先看如何创建自己的 Jar 包 里面随便写个方法 public int add(int a,int b){ return (a+b); } task makeJar(type:
杨奉武
2019/10/03
1.5K0
Roslyn 打包 NuGet 包 BuildTransitive 文件夹用于穿透依赖传递拷贝文件
默认的 PackageReference 可以实现传递依赖,传递依赖的含义是是假定 B 项目安装了 A 库,而 C 项目依赖 B 项目,那么 C 项目将会自然拿到 A 库的 DLL 引用。但默认的 NuGet 包的构建指导文件 targets 命令是不会在传递执行的,也就是如上的 C 项目将不会执行 B 项目安装的 A 库里面的 target 内容 有一些项目需要拷贝自定义文件,例如拷贝图片或者一些 Native 的 DLL 等资源。如 WPF 框架需要拷贝 PenIME 等资源。如果只是在最底层的项目安装了库,那为了让可执行文件项目也输出库的资源,就需要在可执行项目上也安装库。以上的方法的不足在于安装复杂,也许会忘记安装 本文告诉大家一个解决方法是通过在制作库的时候,加上 BuildTransitive 文件夹,在此文件夹内添加构建指导文件,此时这个构建指导文件 targets 文件里面的命令将会在传递中执行,也就是说只需要在底层的项目安装即可,不需要在可执行项目上也安装库
林德熙
2021/12/24
7250
为什么SpringBoot jar包中的文件读取不到?
菜菜同学每天的工作便是与三方对接,而且这次的任务是接入 N 套证书相关配置文件。考虑到后期易于上线,于是菜菜开启了从硬编码到易维护的代码优化之路。
一猿小讲
2021/10/08
1.4K0
python引入其他文件夹里的py文件的方法
在写python框架的时候,经常会用到引入其他文件夹里的python文件,要是都在同目录下的还好,直接import就好了,可是有的不在同一个目录,很多初学者就发现直接import报错了 1.如果是同目录下的引入
matinal
2023/10/13
8080
python引入其他文件夹里的py文件的方法
Intellij idea打带Manifest文件的jar包(可执行jar包)
老版本Intellij idea可以很方便地打带Manifest文件的jar包,也就是可行性的Jar包。今天使用新版的Intellij idea打jar包时遇到了坑,jar包中竟然没有MANIFEST文件。
程裕强
2019/05/27
4.8K0
根据包名查找 Jar 包文件
很多时候,我们需要根据包名来查找一些依赖所在的jar包,比如我们想要查找com.alipay这个包及其文件所在的jar包。
技术小黑屋
2020/01/19
2.3K0
Linux怎么复制文件到其他文件夹
本文主要讲解linux怎么复制文件到其他文件夹。 在Linux和Unix系统上工作时,复制文件和目录是您每天要执行的最常见任务之一。 cp是一个命令行实用程序,用于复制Unix和Linux系统上的文件和目录。在本文中,我们将解释如何使用cp命令。
狼啸风云
2021/04/13
15.8K0
操作 PDF 文件的常用JAR包
iText 5是最早一个提供对PDF进行操作的JAR包,不过目前该JAR已经不再进行后续开发。可以从官网看到如下一段话:
BUG弄潮儿
2020/12/02
2.6K0
获取当前jar包路径_java获取jar文件
获取classpath的路径,若没有其他依赖,在cmd下运行该可执行jar包,则该值即为该jar包的绝对路径。代码如下:
全栈程序员站长
2022/11/10
7.5K0

相似问题

取消订阅时事通讯

22

Magento -订阅和取消订阅时事通讯无事件

42

Zencart订阅时事通讯

11

如何使用Sitecore 8.1、WFFM和EXM配置时事通讯订阅

14

时事通讯订阅与注册

25
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文