Orochi

HIP / CUDA API 动态处理
授权协议 MIT
开发语言 C/C++
所属分类 程序开发、 图形/图像处理
软件类型 开源软件
地区 不详
投 递 者 马安邦
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Orochi 是一个动态加载 HIP 和 CUDA API 的库,允许用户在运行时切换 API。

使用 Orochi 便无需为每个 API 编译单独的实现。只需编译和维护单个二进制文件,即可在 AMD 和 NVIDIA GPU 上运行的。

和在编译时使用 hipamd 或 CUDA 的 HIP 不同,Orochi 将根据使用的平台,动态加载相应的 HIP/CUDA 共享库。换句话说,它将 HIPEW 和 CUEW 提供的功能组合到一个库中。

要求

此库不需要您在构建时链接到 CUDA(用于驱动程序 API)或 HIP(用于驱动程序和运行时 API)。

如果您不使用运行时 API,则无需在机器或 CUDA SDK 上安装 HIP SDK。

要运行使用 Orochi 编译的应用程序,需要安装选择的驱动程序,以及基于可用 GPU 的相应 .dll/.so 文件。Orochi 会在运行时自动链接相应的共享库。

API example

API 有 oro前缀, 如果你熟悉 CUDA 或 HIP 驱动程序 API,将很容易习惯 Orochi API。

例如,假设有以下用于设备和上下文创建的 HIP 代码:

#include <hip/hip_runtime.h>

hipInit( 0 );
hipDevice device;
hipDeviceGet( &device, 0 );
hipCtx ctx;
hipCtxCreate( &ctx, 0, device );

相同的代码可以使用 Orochi 重写为:

#include <Orochi/Orochi.h>

oroInitialize( ORO_API_HIP, 0 );
oroInit( 0 );
oroDevice device;
oroDeviceGet( &device, 0 );
oroCtx ctx;
oroCtxCreate( &ctx, 0, device );

它将在运行时在 CUDA 和 HIP 上运行!

示例应用程序中查看更多信息。

  • 下面以对KOEI的无双大蛇的一个bug的研究为例,介绍程序分析的基本方法。 无双大蛇是KOEI公司推出的一款动作类游戏,3.20日发布了日文PC版。 在游戏过程中发现,进入某些战斗的时候程序会陷入死循环,具体表现是在菜单中选择战斗场景之后,画面变黑,但是一直不出现战前配置的界面。Alt+F4关闭主窗口之后,还可以在任务管理器中找到它的进程。 因为是进入战斗场景时发生的问题,猜测可能是读取或者解析场

 相关资料
  • 爬虫(Spider),反爬虫(Anti-Spider),反反爬虫(Anti-Anti-Spider) 之间恢宏壮阔的斗争… Day 1 小莫想要某站上所有的电影,写了标准的爬虫(基于HttpClient库),不断地遍历某站的电影列表页面,根据 Html 分析电影名字存进自己的数据库。 这个站点的运维小黎发现某个时间段请求量陡增,分析日志发现都是 IP(xxx.xxx.xxx.xxx)这个用户,并且

  • 我想动态地从EditText中获取值...当用户按下添加按钮时,我生成了很多EditText...当用户按下添加按钮时,它每次都会生成3个Edittext。我不知道如何从这个动态生成的EdiTtext中获取值。现在我的问题是如何从每行的3个Edittext中获取值。我还需要验证用户是否删除了视图。请帮助我是新的android开发。当用户按下保存按钮时,应该会发生这种情况。提前谢谢! 这是课堂。 这

  • 问题内容: 从MDN for NodeList: 在某些情况下,NodeList是一个实时集合,这意味着DOM中的更改会反映在集合中。例如,Node.childNodes处于活动状态: 在其他情况下,NodeList是静态集合,这意味着DOM中的任何后续更改都不会影响集合的内容。document.querySelectorAll返回一个静态NodeList。 所以....有点烦!是否有任何关于哪些

  • 问题内容: 我有一个与此类似的类层次结构: 像这样的json输入(我无法改变自己) 我正在像这样用Jackson解析Java中的JSON 我想使用JAVA / Jackson从JSON反序列化类A,B和其他类。JSON中没有嵌入类型信息(并且不能)。我不能在类上使用批注(我不拥有它们),我(相信)我不能使用混合包,因为可能有任意数量的类,例如A和B(混合包不是动态的)。好的是,反序列化代码知道哪个

  • 问题内容: 我正在使用改造高效的网络库,但无法处理包含单个前缀的Dynamic JSON,该前缀 会随机更改,在某些情况下(动态),相同的前缀()会更改为String。 Json格式的responseMessage对象: Json格式会动态更改为字符串类型: 我的问题是,由于改造具有内置的解析,我必须为每个请求分配单个POJO!但是不幸的是,REST-API是基于动态响应构建的。前缀将在 成功(…

  • 问题内容: 我正在尝试创建一个非常简单的Swing UI,以在后台进行处理时通过JTextArea将信息记录到屏幕上。当用户单击按钮时,我希望每个呼叫都能够: 立即显示在用户界面中 目前,在单击按钮后处理完成之前,JTextArea不会显示所有日志信息。如何获得动态刷新? 问题答案: 我的应用程序遇到了同样的问题。我的应用程序有一个“运行”按钮,它执行一些操作并将结果输出到JTextArea。我不

  • 本文向大家介绍Vue.js实现简单动态数据处理,包括了Vue.js实现简单动态数据处理的使用技巧和注意事项,需要的朋友参考一下 直接上代码吧 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • POJO: 在上面的代码POJO TrackerRefResponse.java前缀responseMessage被设置为responseMessage类型的string或object,所以我们可以用同名的ref变量(java basics:)创建POJO,所以我正在为Referfit中的dynamic寻找相同的解决方案。我知道这在带有异步任务的普通http客户端中非常容易,但这不是REST-AP