首页 > 其他分享 >libtorch 版本 Pre-cxx11 ABI 和 cxx11 ABI 区别

libtorch 版本 Pre-cxx11 ABI 和 cxx11 ABI 区别

时间:2024-08-30 20:04:16浏览次数:10  
标签:Pre 11 CXX11 ABI C++ libtorch cxx11

libtorch 的 Pre-CXX11 ABI 和 CXX11 ABI 版本主要区别在于它们使用的 C++ ABI(Application Binary Interface)。ABI 定义了编译后的二进制文件在不同模块之间的接口。C++11 引入了一些新的语言特性,导致 ABI 发生变化,因此有两个版本的 ABI 来保持与现有代码的兼容性。

主要区别:

  1. ABI 不兼容性:

    • Pre-CXX11 ABI 使用的是 C++11 标准之前的 ABI,主要是为了与使用旧版本 ABI 的库保持兼容。这种 ABI 版本的 libtorch 能与旧的二进制代码一起工作,特别是与一些系统库(例如,使用旧 ABI 编译的 libstdc++ 库)保持兼容。
    • CXX11 ABI 使用的是 C++11 标准引入后的新 ABI。这种版本的 libtorch 是为了利用 C++11 的新特性编译的,能带来性能和功能上的改进,但它与 Pre-CXX11 ABI 不兼容。
  2. 运行时兼容性:

    • 如果你使用的系统或者其他依赖库是基于 Pre-CXX11 ABI 编译的,并且你选择使用 CXX11 ABI 编译的 libtorch,可能会导致链接错误或运行时问题。
    • 反之,如果你使用的是新版本的库,并且需要利用 C++11 或更新标准的特性,最好使用 CXX11 ABI 的 libtorch
  3. 应用场景:

    • Pre-CXX11 ABI 通常用于需要兼容旧版库的项目,或者你的系统中有许多基于旧 ABI 编译的库。
    • CXX11 ABI 则适合更现代的项目,特别是那些完全基于 C++11 或更新标准的项目。

如何选择:

  • 如果你不确定,可以检查你的系统库是否已经过渡到 CXX11 ABI。如果它们仍然依赖 Pre-CXX11 ABI,建议使用 Pre-CXX11 ABI 版本的 libtorch
  • 使用 libtorch 官方提供的二进制文件时,你可以选择对应的 ABI 版本,通常通过环境变量 GLIBCXX_USE_CXX11_ABI 来控制:
    • GLIBCXX_USE_CXX11_ABI=0:使用 Pre-CXX11 ABI。
    • GLIBCXX_USE_CXX11_ABI=1:使用 CXX11 ABI。

最好使用 CXX11 ABI, 否则你会遇到很多 链接错误。尤其是和别的库进行混编时候。

标签:Pre,11,CXX11,ABI,C++,libtorch,cxx11
From: https://www.cnblogs.com/odesey/p/18389413

相关文章

  • 一文读懂:使用混合精度(Mixed-Precision)技术加速LLM
    训练和推理使用那些大型语言模型,真是挺烧钱的,主要是因为它们太能吃计算资源和内存了。不过啊,我最近发现,用点儿小技巧,就是低精度格式,咱们可以大幅提升训练和推理的速度,快到三倍呢,而且一点儿都不影响模型的准确度。咱们主要聊的虽然是大型语言模型,但这些技巧其实挺万能的,用在......
  • 在Android开发中,如何使用SharedPreferences(简称SP)一个轻量级的数据存储方式
    目录全局SharedPreferences工具类代码说明:如何使用这个工具类?在Android开发中,SharedPreferences(简称SP)是一个轻量级的数据存储方式,常用于保存应用的配置信息或少量的数据。为了便于在全局使用,可以将其封装到一个工具类中。以下是一个带有详细中文注释的全局SharedPrefere......
  • 基于nodejs_vue+express框架个人健康管理系统的设计与实现_7999g
    个人健康管理系统按照功能由三部分构成的,三部份是用户、医生和管理员。主要功能有出诊医生、预约挂号、健康档案、疾病评枯等。系统软件用户、医生与管理员的功能模块图个人健康服务平台是以医院的状况为起点,综合网络空间开发设计要求。目的是将个人健康通过网络平台变换为在......
  • 在中国使用wordpress建网站的主要有三类人
    在中国,使用WordPress建网站的主要有三类人:做IT技术程序员、海归人士和做外贸的老板。这三类人选择WordPress的原因可以从WordPress的多个优势中找到答案。做IT技术程序员选择WordPress的原因在于其高度的可扩展性和灵活性。WordPress的模块化设计和强大的插件生态系统使得程序......
  • 「对比评测」标准WPF DataGrid与DevExpress WPF GridControl有何不同?(二)
    DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。无论是Office办公软件的衍伸产品,还是以数据为中心......
  • wordpress跨境电商外贸独立站 常见获取流量方式
    在建立跨境电商外贸独立站时,获取流量的方法有很多种,以下是一些常见的方法:社交媒体营销:通过发布有吸引力的内容在Facebook、Instagram、Twitter等平台上。电子邮件营销:通过向潜在客户发送定制的电子邮件,包含特别优惠或新产品信息。搜索引擎优化(SEO):提高网站在搜索引擎中的排名,以......
  • CoreNext主题1.5.2免授权 | WordPress主题模板
    CoreNext主题1.5.2免授权 | WordPress主题模板探索无限可能:CoreNext主题1.5.2免授权WordPress主题模板在这个数字化的时代,网站已成为个人品牌和企业展示的窗口。对于那些追求独特风格和高效管理的用户来说,选择一个合适的WordPress主题模板至关重要。今天,我们将深入探讨Core......
  • DevExpress WinForms中文教程:Data Grid - 如何设置条件格式?
    本文介绍DevExpressWinForms中的Excel样式的条件格式设置,您可以了解最终用户可用的特性,了解可用的格式类型以及如何在设计时或在代码中设置条件格式。P.S:DevExpressWinForms拥有180+组件和UI库,能为WindowsForms平台创建具有影响力的业务解决方案。DevExpressWinForms能完美构......
  • Android经典实战之存储方案对比:SharedPreferences vs MMKV vs DataStore
    本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点在Android开发中,键值对存储(Key-ValueStorage)是一种经常用到的轻量级数据存储方案。它主要用于保存一些简单的配置数据或状态信息,例如用户设置、缓存数据等。常......
  • [1052] Add the ArcPy Python interpreter in VS Code
    ToaddtheArcPyPythoninterpreterinVisualStudioCode(VSCode),followthesesteps:InstallArcGISPro:EnsureyouhaveArcGISProinstalled,asitincludestheArcPylibrary.InstallVSCode:DownloadandinstallVisualStudioCodefromtheoffi......