问题标签 [hip]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
concurrency - 使用 HIP C++ 在 AMD GPU 上使用 `shfl` 操作有什么要求?
有与 CUDA C++ 非常相似的AMD HIP C ++。AMD 还创建了Hipify以将 CUDA C++ 转换为 HIP C++(便携式 C++ 代码),可以在 nVidia GPU 和 AMD GPU 上执行:https ://github.com/GPUOpen-ProfessionalCompute-Tools/HIP
shfl
在 nVidia GPU 上使用操作有要求: https ://github.com/GPUOpen-ProfessionalCompute-Tools/HIP/tree/master/samples/2_Cookbook/4_shfl#requirement-for-nvidia
对英伟达的要求
请确保您拥有3.0 或更高版本的计算能力设备,以便使用 warp shfl 操作并在使用此应用程序时在 Makefile 中添加 -gencode arch=compute=30, code=sm_30 nvcc 标志。
- 还注意到 HIP
shfl
在 AMD 上支持 64 波大小(WARP 大小):https ://github.com/GPUOpen-ProfessionalCompute-Tools/HIP/blob/master/docs/markdown/hip_faq.md#why-use-hip-而不是直接支持 cuda
此外,HIP 定义了查询架构特性的可移植机制,并支持更大的64 位 wavesize,这将跨通道函数(如投票和随机播放)的返回类型从 32 位整数扩展到 64 位整数。
但是哪些 AMD GPU 确实支持功能shfl
,或者任何 AMD GPU 都支持shfl
,因为在 AMD GPU 上它是通过使用本地内存实现的,而没有硬件指令寄存器到寄存器?
nVidia GPU 需要 3.0 或更高的计算能力 (CUDA CC),但是shfl
使用 HIP C++ 在 AMD GPU 上使用操作有什么要求?
tensorflow - 尝试运行 hipTensorFlow 时出现 HCC 运行时错误(Ubuntu 16.04,R9 290)
我按照此处的说明安装了 hipTensorFlow 。
正如他们在指南中所说,我正在运行 Ubuntu 16.04,并且我有一张 AMD R9 290 卡。
但是当尝试导入 Tensorflow 时,我得到以下输出:
尝试在 Google 中搜索它并没有带来太多帮助 - 只是我的卡不受支持还是我可以做些什么来帮助它工作?
image - Haskell HIP 提高切片图像时的性能
对于 X 射线切片,我想创建一个程序来重建切片并执行逆氡变换。第一步是创建图像的正弦图。但是创建一个正弦图需要很长时间。
我有 1500 张图片,每张都有 3.5MB 的 PNG 格式。解压后,它们需要大约 10 GB 的内存,这对我来说很好。
为了创建一个正弦图,必须对齐所有图像的同一行。我正在使用 HIP 和可存储向量来完成这项任务。处理所有图像大约需要 1 分钟,我想知道如何加快这个过程。
我的代码在这里:
我已经使用 +RTS -s 选项对其进行了概要分析,并且垃圾收集所花费的时间很好。我怎样才能加快速度?
为了安装 HIP 堆栈,需要以下部门
haskell - 如何使用 Haskell 图像处理生成图像
我刚开始学习 Haskell,所以我可能遗漏了一些非常琐碎的东西。我正在尝试使用 Haskell 图像处理生成图像。我正在从文档的示例片段中调整代码。我的代码如下。
当我尝试构建它时,我得到以下信息
似乎无法弄清楚我做错了什么。
haskell - Haskell HIP:将过滤器应用于图像
我正在尝试使用 Haskell 图像处理包HIP向图像添加过滤器,我能够使用ByteString包读取图像并使用 HIP 将图像转换为类型Image VS YCbCr Word8
。现在,我如何转换Image VS YCbCr Word8
为Border (Pixel cs e)
or Pixel cs e
?我还在学习 Haskell,所以请保持简单。见下面的代码:
image - 如何使用 HIP 将图像类型的精度从 Double 转换为 Word8?
我有一个类型的图像Image VS Y Double
(使用readImageY
HIP 库中的函数后),我想将其转换为Image VS Y Word8
. 我该怎么做呢?我需要在这个精度下应用它的下一个函数。
以下是相关代码的片段:
这是错误:
编辑: 双打是在图像类型中存储为 VS 向量类型的灰度像素值。我遇到的问题是可以访问双打以便能够转换它们。试图在这里解释/找到 HIP 库的方法,但我是 Haskell 的新手,无法弄清楚。
amd-gpu - 了解 AMD GPU 中的 oneAPI 和 SYCL
我是一名 GPGPU 开发人员,我使用 CUDA 完成了所有工作。最近我为我的家庭设置购买了一个 AMD GPU,并且我一直在阅读有关 SYCL 和 oneAPI 的信息,但我不确定我是否了解它们中的每一个是什么,它们是如何补充的。如果我理解正确的话,SYCL 是由 Khronos 开发的标准,允许在 C++ 中创建并行软件。它需要一个自定义工具链,由 SYCL 实现提供,并且存在多个实现。
另一方面,oneAPI 是 SYCL 的实现,带有一些额外的扩展(将来可能会添加到 SYCL 标准中)和一些具有典型并行库的库,对吧?
由于我有一个 AMD GPU,我想用它来做一些 GPGPU,但是生态系统有点吓人。我们有台面驱动程序、AMD 驱动程序、不同的 openCL 实现、HIP……所有这些假设如何组合在一起?
haskell - Haskell中更快的SumSquareDifference
我正在 Haskell 中实现二进制图像的分形图像压缩算法。为此,我必须在所谓的域池中找到给定范围块(子图像)最接近的图像,即图像列表列表。我通过计算两个像素值的平方和差来比较图像。
我使用 Haskell 图像处理 (HIP) 库来读取和写入图像。
这段代码的性能真的很差。尽管使用-O2
. 分析向我展示了大部分运行时都花在了函数distance
中,尤其是在 sumSquareDifference
,而且在toLists
和toBinList
:
有没有办法提高性能?
块大小为 2 表示将 16384 个范围块与域池的 131072 个图像进行比较,因此 sumSquareDifference 将被调用 (16384*131072=)2147483648 次,每次计算两个长度为 4 的列表的平方和差。我意识到这是一个很大的数字,但代码不应该更快(懒惰评估列表)吗?这是 Haskell 问题还是算法问题?
编辑:
通过使用,我至少能够将性能提高三分之一:
编辑2:
dPool
通过使用函数创建,我能够极大地提高性能genDistanceList
,一旦找到两个相同的图像就会停止计算:
gpu - 是否可以并行访问 HBM2?
我有一个代码可以顺序访问约 4GB 的内存,每个请求访问 1024 位,随机访问所有 4GB ......我有一个 16GB HBM2 和 4096 位 BUS 的 RADEON VII。
可能的优化 1:每个内存请求 4GB 和 4x 数据!(不起作用,因为第一个请求告诉我跨 4GB 的第二个请求,所以第二个请求所需的数据可能在内存中很远)
可能的优化 2:每个内存请求 4+4+4+4GB 和 1x 数据!(不会提高性能,因为对 4GB 组的每个请求都会将其他请求延迟到 0.25 倍性能,所以我得到 4 个线程,每个线程的性能为 0.25 倍)
问题:
对于优化 1 - 是否可以拆分 4096 位 BUS,所以我可以以非阻塞方式并行获取 1024 位内存的不同区域?
对于优化 2 - 是否可以并行处理 4GB 的“块”,每个块都是独立的,而其他块是非阻塞的?
PS - 我知道这取决于内存控制器,所以如果你知道可以做到这一点的不同硬件,也请告诉我。