记录windows 下编译用于C++的Open3D CUDA 版本(特别是踩坑mkl-include-2020.1-intel_216-win-64.tar.bz2W‘ failed)

记录windows 下编译用于C++的Open3D CUDA 版本(特别是踩坑mkl-include-2020.1-intel_216-win-64.tar.bz2W‘ failed)

Open3D 作为点云计算在某些方面有PCL不具备的优势,为了编译支持cuda加速的版本,可以说坑都踩尽了,此处值得记录一下。下面还是直奔主题吧。
1.先科普适合自己PC的可以稳定兼容Open3D的 CUDA加速需要的软件版本
本来我想说先提前配好,但是先科普再适配其实可以少踩很多坑,可以避免不兼容又回头。
为了编译出可以兼容性较好的Open3D版本,科普千问给我的建议是:

在这里插入图片描述

2.根据AI的建议,那就做对应安装吧。
此处可能需要先卸载后安装,又是一顿狂操作,卸载建议从显示控制面板进入,cuda 的卸载还讲究呢,不要动显卡驱动相关。
我的PC是i5-13400H,RTX3050,安装了VisualStudio2019(开始是2015,科普以后卸载了),Cuda version 一开始是12.4,科普以后重装了,Cmake 一开始是1.18 又卸载重装了。毕竟经验有道。总之就是想捣鼓成官方反馈的兼容性好的契合。

在这里插入图片描述

S
3.确认自己的安装和open3D 源码
安装cuda、CmaCke、VisualStudio其实不那么难,安装完在PowerShell查阅一下版本基本搞定。此处要提的Open3D 源码下载,在网速慢的环境,真的太太太不友好了。
很多人可能直接去了open3D 的官网,然后下来zip 源码到本地。我也这样试过,百转千回以后,我又安装了Git,从git开始拉源码。但是源码还是不好拉啊,网速太不行了,能拉出来这个框架算幸运。

git clone https://github.com/isl-org/Open3D.git

据说这样拉,还要刷新子模块,但是网不行啊,连不上呢。。。

那按照这样,

 git clone --recursive https://github.com/isl-org/Open3D.git

有点幸运(其实是换了更快的无线),这个看起来能拉到框架,但是网速还是很慢,所以此处需要去使用可以加速的镜像,还是需要去科普。总之经历重重磨难还是拉下来源码壳子了。遇到问题一定要弄清楚,现在AI求助工具有很多。

后来发现坑远不止如此,拉下来的只是个框架,里面的几十个子模块在编译的时候都要再次下载,网不好的都要手动补充。有的建议自己去提前下载放进去,有的觉得Cmake时和build时可以自动下载,实在下不了再手动。我实在没有耐心对着那长长的子模块去下载,还是先把机会交给Cmake自动吧(事实证明这样更科学,因为不需要的模块其实不用下载)。来看看最后下来的样子,总之就是源码里面牵着好多子模块呢。

在这里插入图片描述


在这里插入图片描述


此处记录一下Cmake GUI编译吧,非常重要
首先需要在源代码里建一个文件夹,可以作为生成的目标路径 如build或build_GPU,然后编译,此处要说一下,生成的整个文件夹最后会很大,要预留10GB以上的空间。

在这里插入图片描述


configure 以后选中平台

在这里插入图片描述


然后等待configure, 当报错时及时修改参数状态,需要注意的参数状态如下:
1)CUDA 模块参数要选中,算力参数需要手动加上
因为编译的是需要支持cuda的版本,cuda对应的参数要选中,而且RTX3050对应的算力是86,如果GPU不一样,此处需要先科普好,然后填上

在这里插入图片描述


2)关键参数设置
STATIC_WINDOWS_RUNTIME 这里最好不要选中,因为我编译的是希望可以给其他工程动态调用的,

在这里插入图片描述


而且 BUILD_SHARED_LIBS 一定要选上

在这里插入图片描述


python相关的不在我考虑的范围,关于python 模块的参数不选,如果编译python 版本估计坑也会有所不同,

在这里插入图片描述


还有一个模块,BUILD_WEBRTC 建议不要选,坑多,我也不需要联网优化。。。

在这里插入图片描述


那个MKL 和IPPICV 要选中,因为对于优化计算少不了
最后就是一直configure done 直到没有标红,就可以generate 了,generate done 可以得到一个Open3D.sln 框架的工程。通过这个框架工程我们就可以编译open3D 库。
小结:
整个cmake 的过程,首先需要安装好需要的软件环境,然后需要拉好Open3D源代码,当环境准备好了,源代码完整了,这样再开始Cmake 编译框架,编译的时候一定要查看输出和报错,及时调整,确保所有的参数设置状态合理正确。任何问题都要及时AI请求帮助。

4.基于visualStudio 编译Open3D.sln
打开工程后,在顶部设成release 工程,X64,然后生成 ALL_BUILD
(1)当报错dowloading XXXXX failed 错误

是因为网络慢或者不顺通导致子模块下载失败,需要复制报错内容中的github网址,然后手动贴到浏览器里面去下载,下载好以后,把文件拷贝到Open3D 源代码下的3rdparty_downloads文件夹中对应的子目录
记得看好下载文件的名称,应该和子目录中的文件名是一样的,只不过因为网络原因,子目录中原来的文件是0kB 或者不完整,记得一定是原样替换!
(2)一个非常诡异的错误(在open3D V0.18.0版本)
downloading ‘https://github.com/isl-org/Open3D/releases/download/v0.12.0/mkl-include-2020.1-intel_216-win-64.tar.bz2W’ failed ext_mkl_include (ExternalProjectTargets\ext_mkl_include\ext_mkl_include) E:\Open3D\build\CUSTOMBUILD 1

在这里插入图片描述


这个手动copy 网址下载也无效,其实是因为这个地址就是个错的,那么就需要改原来的位置吧,
找到下载的Open3D 源代码文件夹, 3rdparty\mkl\mkl.cmake打开

在这里插入图片描述


看看15行,最后多的那个W需要去掉,去掉以后的样子如下:

在这里插入图片描述


然后再去编译吧,如果下载失败就手动下载替换;每一次失败以后修改完,记得要生成ALL_BUILD,记得是生成,不是重新生成,因为后面的每次生成都是是增量编译,而重新生成就是从头开始生成。
最后,看看生成结果,ALL_BUILD 生成成功

在这里插入图片描述


当ALL_BUILD 生成成功以后,就生成INSTALL
鼠标选中INSTALL 右键->仅用于项目->重新生成

在这里插入图片描述


测试一下Open3D 加成GPU以后的输出效果~

在这里插入图片描述


到此时,突然觉得一切的坑和弯路都是距目标越来越近,因为最后完成了一个新的编译工作。就算网络不够通顺,就算奇奇怪怪错误一堆,甚至还三番五次因为一个报错,因为环境兼容需要从0再开始,但每一次编译都是积累和深入。
还有,在生成Open3D.sln的 ALL_BUILD项目的时候,CPU经常几乎爆满啊,要有耐心去等待和及时解决下载问题。总之Open3D 的cuda编译确实需要足够细心和耐心,今天记录到这里,每一步走过的路都作数~

Read more

X86、ARM与C86架构全面对比分析:性能、功耗、成本与生态系统

目录标题 * X86、ARM与C86架构全面对比分析:性能、功耗、成本与生态系统 * 一、架构概述与发展背景 * 1.1 X86架构:PC与服务器市场的传统霸主 * 1.2 ARM架构:移动领域的王者与新兴服务器力量 * 1.3 C86架构:国产x86兼容的创新尝试 * 二、性能表现对比分析 * 2.1 运算速度与数据处理能力 * 2.2 不同场景下的性能表现 * 2.3 性能优化与未来趋势 * 三、功耗与能效比分析 * 3.1 不同架构的功耗特性 * 3.2 不同应用场景下的能耗分析 * 3.3 能效优化技术与未来趋势 * 四、成本分析与经济性比较 * 4.1 芯片制造成本对比 * 4.2 不同应用场景的总体拥有成本(

By Ne0inhk
从SQL Server到KingbaseES:一步到位的跨平台迁移与性能优化指南

从SQL Server到KingbaseES:一步到位的跨平台迁移与性能优化指南

摘要:信创背景下,国产数据库正以惊人的兼容性和更优的成本效益赢得市场。本文详细介绍了国产数据库KingbaseES V9R4C12作为SQL Server替代方案的实战应用。通过代码示例展示了其在语法兼容性(95%以上T-SQL兼容)、数据类型支持、存储过程迁移等方面的优异表现。文章包含Windows/Linux安装指南、基础操作对比、高级特性实现(如分页查询、事务控制)以及TPCH100G性能测试结果(部分场景性能优于SQL Server)。特别强调了KingbaseES在信创背景下的合规优势,提供了迁移验证脚本和注意事项,证明其能实现低风险平滑迁移,同时大幅降低License成本。 一、为什么选择KingbaseES替代SQL Server? 在信创窗口期,许多使用SQL Server作为核心数据库的企业面临着合规性风险和高昂的License费用。经过多轮PoC验证, 金仓KingbaseES V9R4C12(SQL Server兼容版) 展现出强大的兼容能力,官方宣称"数据库平替用金仓",为背负2000+存储过程的系统提供了低风险迁移方案。 先来看一个直观的兼容性对比:

By Ne0inhk
数据库 SQL 防火墙:内核级防护,筑牢 SQL 注入安全防线

数据库 SQL 防火墙:内核级防护,筑牢 SQL 注入安全防线

在数字化转型持续深化的今天,数据早已从辅助资源升级为企业的核心生产要素。无论是政务系统、金融交易,还是工业控制、能源调度,数据库作为数据的最终载体,其安全直接关系到业务连续性与数据资产完整性。 在各类数据库安全威胁中,SQL注入凭借门槛低、隐蔽性强、破坏力大的特点,长期位居OWASP Top 10 Web应用安全风险前列。它就像潜伏在业务链路中的隐秘入侵者,利用应用逻辑漏洞,将恶意指令伪装成正常参数传入数据库,进而实现越权访问、数据窃取甚至删库破坏。 尽管行业内早已形成共识——通过预编译语句、参数化查询、输入校验等方式可以有效防范SQL注入,但在真实业务环境中,风险依然无处不在:老旧系统的遗留代码难以全面改造、第三方组件存在未知漏洞、多团队协作中难免出现编码疏漏、动态SQL拼接场景难以完全规范化……只要存在一处薄弱环节,就可能被攻击者利用,引发连锁安全事故。 面对这种“处处设防仍可能百密一疏”的困境,单纯依赖应用层加固显然不够。能否从数据库自身出发,构建一层独立、可靠、主动的防御体系?金仓数据库(KingbaseES)V009R002C014版本内置的SQL防火墙能力,正是从这一

By Ne0inhk
【Spring Boot】解锁高效安全之门:登录令牌技术的实战应用与价值解析

【Spring Boot】解锁高效安全之门:登录令牌技术的实战应用与价值解析

前言 🌟🌟本期讲解关于token令牌技术介绍~~~ 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-ZEEKLOG博客 🔥 你的点赞就是小编不断更新的最大动力                                        🎆那么废话不多说直接开整吧~~  目录 📚️1.Session与Cookie 🚀1.1实现原理 🚀1.2集群环境情况 📚️2.令牌技术 🚀2.1实现校验原理 🚀2.2优缺点 🚀2.3JWT令牌 2.3.1JWT组成 2.3.2JWT令牌⽣成和校验 2.3.3生成令牌  2.3.4密钥的生成 2.3.5令牌的解析 📚️3.令牌技术的使用 🚀3.1令牌技术功能类 🚀3.2controller层 📚️4.总结   📚️1.Session与Cookie 🚀1.1实现原理 传统情况下:

By Ne0inhk