JCUDA thread context 测试

在C++中,可以使用runtime api 创建一个primary context,从而多个线程多享,避免了使用drive api 创建多个 standard context的时间开销。

在Java中也试图尝试 使用runtime api 创建一个primary context,但问题是,发现对于Java不适用,在一个thread创建的primary context ,在另外一个线程中无法使用。

所以,最后还是使用driver api 创建的多个standard context

注意:

在Jcuda给出的例子中都是使用 driver API进行Java到 CUDA的接口。我是怎么找到 runtime api?

看Jcuda的源代码 https://github.com/jcuda/jcuda/blob/master/JCudaRuntimeJNI/src/JCudaRuntime.cpp

根据源代码找出相应的 java port function

实际上:Jcuda是在JNI的基础上实现了 java 和 cuda 之间的联系的

因为,每个java port function 都是会调用一个JNI function,在该JNI function中调用cuda。

Java (程序)  ->  Java (接口类,它的函数成员是接口) ->   JNI function (JNI接口) ->  C++(调用cuda)

看Jcuda的源代码就明白了。

时间: 2024-08-04 21:51:27

JCUDA thread context 测试的相关文章

Thread in depth 1: The basic

Every single thread has the follow elements: Thread Kernel Object:TKO is a data structure.Everytime when a thread is created,a TKO will be assigned and initialized.TKO maintains a property of descriping the thread, and thread context. Thread Environm

C#中如果正确使用线程Task类和Thread类

C#中使用线程Task类和Thread类小结 刚接触C#3个月左右,原先一直使用C++开发,因为公司的需要,所地采用C#开发,主要是控制设备的实时性操作,此为背景. 对于C#中的Task和Thread我在这不作介绍,要了解更多的,如果查看相当信息.此次项目中使用到TASK和THRED,让我调试足足用了将近两周的时间才找出问题所在,所以在此写出来防止跟我一样刚接触C#,又同时需要对线程的实时性要求的开发人员一些个人总结注意事项. 1.Task适合用于多处理器,且i系列多处理器. 2.Thread则

Android测试基础

android测试框架(Android Testing Framework)是开发环境的一部分,它提供了架构和强大的工具帮助你从单元到框架测试应用的各个方面. 关键特性: 基 于 JUnit,可直接使用JUnit测试一些与Android AP不相关的类,或使用 Android的JUint 扩展来测试 Android 组件.如果你刚开始接触 Android 测试,可以先从 AndroidTestCase开始写一些通用目的的测试用例,然后再写较复杂的测试用例. Android JUint扩展提供了对

Thread message loop for a thread with a hidden window? Make AllocateHwnd safe

Thread message loop for a thread with a hidden window? I have a Delphi 6 application that has a thread dedicated to communicating with a foreign application that uses SendMessage() and WM_COPYDATA messages to interface with external programs. Therefo

Angular单元测试与E2E测试

本文介绍了Angular单元测试和E2E测试的配置与测试方法.示例APP使用Angular 7 CLI创建,已配置好基础测试环境,生成了测试样例代码.默认,Angular单元测试使用Jasmine测试框架和Karma测试运行器,E2E测试使用Jasmine测试框架和Protractor端到端测试框架. 配置单元测试 Jasmine是一个用于测试JavaScript的行为驱动开发框架,不依赖于任何其他JavaScript框架.Karma是测试运行器,为开发人员提供了高效.真实的测试环境,支持多种浏

线程中断:Thread类中interrupt()、interrupted()和 isInterrupted()方法详解

首先看看官方说明: interrupt()方法 其作用是中断此线程(此线程不一定是当前线程,而是指调用该方法的Thread实例所代表的线程),但实际上只是给线程设置一个中断标志,线程仍会继续运行. interrupted()方法 作用是测试当前线程是否被中断(检查中断标志),返回一个boolean并清除中断状态,第二次再调用时中断状态已经被清除,将返回一个false. isInterrupted()方法 作用是只测试此线程是否被中断 ,不清除中断状态  下面我们进行测试说明: 定义一个MyThr

LoadRunner与JDK的安装问题

我在使用LoadRunner11版本的时候,取得的license是Java协议,需要在服务器上安装JDK.首先服务器是Microsoft Windows7 旗舰版Pack2(x64),安装的LoadRunner11路径是在D盘的Program Files中,按照这样来说,就需要安装64为的JDK,我即安装jdk1.6,但是在安装成功后,运行写好的Java协议脚本,会出现如下的错误: Error: Failed to find javac.exe Java Compiler in Path and

loadrunner java 缺少必要的导入包报错

loadrunner 运行从eclipse中做好的脚本,ctrl + A 复制到loadrunner中来, 添加参数化的的语句:verifyCode =    lr.eval_string ("<rand6>"); 报错: Notify: Found jdk version: 1.6.0. [MsgId: MMSG-22986]Notify: classpath=E:\performanceTest\3-性能测试\lr_hibox_script\;c:\program fi

Java并发包学习一 ThreadFactory介绍

ThreadFactory翻译过来是线程工厂,顾名思义,就是用来创建线程的,它用到了工厂模式的思想.它通常和线程池一起使用,主要用来控制创建新线程时的一些行为,比如设置线程的优先级,名字等等.它是一个接口,接口中只有一个方法: /* * * * * * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as expl