首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SPIR和LLVM最基本的区别是什么?

SPIR和LLVM最基本的区别是什么?
EN

Stack Overflow用户
提问于 2022-02-24 12:54:27
回答 2查看 327关注 0票数 2

Spir-v和LLVM IR具有相同的粒度,可以相互转换.我能问一下为什么SPir在LLVM IR中仍然如此受欢迎吗?两者的根本区别是什么?

EN

回答 2

Stack Overflow用户

发布于 2022-04-17 13:12:13

与SPIR-V不同,LLVM IR是:

不稳定的,将每个LLVM release

  • Neither向前或向后更改--只向后兼容文本形式的LLVM --更新的LLVM版本不能产生二进制IR,即旧版本可以consume

  • Complex和不规则的structure

  • Difficult来读写,而不需要创建对LLVM的依赖,这是一个庞大的项目

  • ,而不是standardised

  • Highly,它不适合其他编译器或内部representation

  • Limited扩展性以外的其他用途(内部和自定义元数据),但它们的外观和行为并不像内置的instructions)

  • Not便携(IR编码平台专用的characteristics)

  • Does不直接支持GPUs所需的许多特性:纹理、图像、缓冲区、属性、对翘曲散度的控制、子组操作、可变精度…。

许多项目试图使用LLVM bitcode作为“通用字节码”,许多项目对此表示遗憾。SPIR-V本身是用来取代基于LLVM IR的SPIR的.

最重要的区别是,Vulkan和OpenGL可以直接消耗SPIR-V,SPIR-V可以用于着色器,而不仅仅是计算内核。

票数 3
EN

Stack Overflow用户

发布于 2022-02-24 18:32:06

LLVM是一个非常连贯的单个IR线程,通过编译器堆栈的大多数层,LLVM非常侧重于作为编译器转换的手段。SPIR实际上是多种事物的混合。例如,SPIR内存模型是在C++内存模型的基础上建立的,但最终在许多地方出现了分歧。因此,Yugr对答案的一个明显的补充是,除了指令集之外,一个根本的区别是内存模型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71252316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档