cor*_*tin 27 opencl vulkan spir-v
我试图了解OpenCL生态系统以及vulkan如何发挥作用.
鉴于:
OpenCL如何与vulkan相关?我知道OpenCL是更高级别并抽象设备,但是它(或可能)内部使用Vulkan吗?(而不是依赖供应商特定的驱动程序)
Vulkan被宣传为计算和图形API,但是我发现计算部分的资源非常少 - 为什么呢?
Vulkan比OpenGL具有性能优势.Vulkan与OpenCl的情况是否相同?(OpenCL因为比CUDA慢而臭名昭着)
SYCL内部使用OpenCL还是使用vulkan?或者它既不使用,而是依赖于低级别,供应商特定的apis来实现?
Nic*_*las 19
OpenCL如何与vulkan相关?我知道OpenCL是更高级别并抽象设备,但是它(或可能)内部使用Vulkan吗?
他们完全没有关系.
好吧,他们在技术上使用相同的中间着色器语言,但Vulkan禁止内核执行模型,而OpenCL禁止使用Shader执行模型.因此,你不能只为OpenCL设计一个着色器并将其粘贴在Vulkan中,反之亦然.
Vulkan被宣传为计算和图形API,但是我发现计算部分的资源非常少 - 为什么呢?
因为Khronos集团喜欢误导营销模糊.
Vulkan不再是OpenGL的计算API.它可能有计算着色器,但它们的功能有限.您可以通过OpenGL/Vulkan CS无法在OpenCL计算操作中执行此类操作.
Vulkan CS就像OpenGL的CS一样,旨在用于一件事:支持图形操作.做截锥体剔除,构建间接图形命令,操纵粒子系统和其他类似的东西.CS的操作与图形着色器的数值精度相同.
Vulkan比OpenGL具有性能优势.Vulkan与OpenCl的情况是否相同?
计算系统的性能主要取决于其实施的质量.这不是OpenCL那么慢; 这是你的OpenCL实现比它可能更慢.
Vulkan CS在这方面没有什么不同.性能将基于驱动程序的成熟度.
此外,还有一个事实是,在OpenCL计算操作中你可以做很多事情,而你在Vulkan CS中无法做到.
SYCL内部使用OpenCL还是使用vulkan?
来自Khronos集团:
SYCL(发音为'sickle')是一个免版税的跨平台抽象层,它基于OpenCL的基本概念,可移植性和效率......
所以,是的,它建立在OpenCL之上.
OpenCL如何与vulkan相关?
它们都可以使用队列来管理从主机到gpu和gpu的可分离工作到主机,以减少使用多个线程的通信开销.Directx-opengl不行?
OpenCL:2009年8月28日发布.更广泛的硬件支持.指针允许但仅用于设备.您可以使用线程之间共享的本地内存.开始一个问候世界要容易得多.具有api开销的命令,除非它们是设备端排队的.您可以选择隐式多设备同步或显式管理.错误大多是固定为1.2,但我不知道版本2.0.
Vulkan:2016年2月16日首次发布(但从2014年开始).更窄的硬件支持.SPIR-V可以处理指针吗?也许不吧?没有本地内存选项?很难开始你好世界.减少api开销.你能选择隐式的多设备管理吗?Dota-2游戏和其他一些游戏仍有问题.同时使用图形和计算管道可以隐藏更多延迟.
如果opencl中有vulkan,那么它已被公开隐藏了7 - 9年.如果他们可以添加它,他们为什么不为opengl做呢?(也许是因为physx/cuda的压力?)
Vulkan被宣传为计算和图形API,但是我发现计算部分的资源非常少 - 为什么呢?
它需要更多时间,就像opencl一样.
您可以在此处查看计算着色器的信息:
https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#fundamentals-floatingpoint
以下是计算着色器管理的粒子系统示例:
https://github.com/SaschaWillems/Vulkan/tree/master/computeparticles
在此之下,还有光线跟踪器和图像处理示例.
Vulkan比OpenGL具有性能优势.Vulkan与OpenCl的情况是否相同?
OpenCL比CUDA慢得令人遗憾
它是,但现在它的成熟和挑战cuda,特别是使用版本2.1的所有游戏gpus到fpgas的更广泛的硬件支持,例如在未来英特尔可以将fpga放入Core i3并启用它(soft-x86 core ip )多核cpu模型缩小了gpu性能和cpu之间的差距,以升级其cpu-physx游戏体验,或者简单地让opencl物理实现形成它并使用至少%90 die-area而不是soft-core的%10 - %20有效使用区域.
以相同的价格,AMD gpus可以在opencl上更快地计算,并且具有相同的计算能力,英特尔igpus可以降低功耗.(编辑:除非算法对Nvidia具有高手的缓存性能敏感)
此外,我写了一个SGEMM opencl内核并在1.1 Tflops的HD7870上运行并检查互联网,然后使用CUDA上的热门标题在GTX680上看到了相同性能的SGEMM henchmark!(价格比为gtx680/hd7870为2).(编辑:Nvidia的cc3.0在读取全局数组时不使用L1缓存,而我的内核纯粹是本地/共享内存+某些寄存器"平铺")
SYCL内部使用OpenCL还是使用vulkan?或者它既不使用,而是依赖于低级别,供应商特定的apis来实现?
这里,
https://www.khronos.org/assets/uploads/developers/library/2015-iwocl/Khronos-SYCL-May15.pdf
说
提供处理没有OpenCL的目标的方法(尚未!)
后备CPU实现是可调试的!
所以它可以回退到纯线程版本(类似于java的aparapi).
可以从SYCL对象访问OpenCL对象可以从OpenCL对象构造SYCL对象
与OpenGL的Interop保持在SYCL中 - 使用相同的结构/类型
它使用opencl(可能不是直接的,但升级的驱动程序通信?),它与opencl并行开发但可以回退到线程.
从最小的OpenCL 1.2嵌入式设备到最先进的OpenCL 2.2加速器
| 归档时间: |
|
| 查看次数: |
10068 次 |
| 最近记录: |