- 主题:科学计算混编的问题
项目里有一部分实时性要求比较高的部分,需要用到intel cpu的各种高级特性,msvc只支持avx512一个,其他都不支持,所以这部分必须要用intel的compiler编译
项目底层构架的代码,比如异步框架,网络框架,protobuf, absl这些都是用msvc编译的,想用intel的编译器编译各种问题。
问题是,怎么样能把这两部分连在一起,我的理解是用static library肯定是不行了,其他有什么办法么?实在不想用dynamic library的方案
--
FROM 115.193.169.*
折腾这个不如直接上opencl或者cuda
【 在 ziqin 的大作中提到: 】
: 项目里有一部分实时性要求比较高的部分,需要用到intel cpu的各种高级特性,msvc只支持avx512一个,其他都不支持,所以这部分必须要用intel的compiler编译
: 项目底层构架的代码,比如异步框架,网络框架,protobuf, absl这些都是用msvc编译的,想用intel的编译器编译各种问题。
: 问题是,怎么样能把这两部分连在一起,我的理解是用static library肯定是不行了,其他有什么办法么?实在不想用dynamic library的方案
--
FROM 223.104.38.*
高端,帮顶。
单纯从架构来讲,不明白为什么计算部分不单独做成模块?模块基本就是dll/so了
难道这部分处于业务、框架、运算速度的三个维度交叉点?
还是架构的问题哈
【 在 ziqin 的大作中提到: 】
: 项目里有一部分实时性要求比较高的部分,需要用到intel cpu的各种高级特性,msvc只支持avx512一个,其他都不支持,所以这部分必须要用intel的compiler编译
: 项目底层构架的代码,比如异步框架,网络框架,protobuf, absl这些都是用msvc编译的,想用intel的编译器编译各种问题。
: 问题是,怎么样能把这两部分连在一起,我的理解是用static library肯定是不行了,其他有什么办法么?实在不想用dynamic library的方案
--
FROM 1.86.0.*
不是所有的计算都能高并行的 我这个刚好是那种没法上cuda的
【 在 dormouseBHU 的大作中提到: 】
: 折腾这个不如直接上opencl或者cuda
--
FROM 36.28.78.*
不少consteval的代码
【 在 DoorWay 的大作中提到: 】
: 高端,帮顶。
: 单纯从架构来讲,不明白为什么计算部分不单独做成模块?模块基本就是dll/so了
: 难道这部分处于业务、框架、运算速度的三个维度交叉点?
: ...................
--
FROM 36.28.78.*
intel compiler现在转用llvm了,你可以试试直接用clang/llvm
【 在 ziqin 的大作中提到: 】
: 项目里有一部分实时性要求比较高的部分,需要用到intel cpu的各种高级特性,msvc只支持avx512一个,其他都不支持,所以这部分必须要用intel的compiler编译
: 项目底层构架的代码,比如异步框架,网络框架,protobuf, absl这些都是用msvc编译的,想用intel的编译器编译各种问题。
: 问题是,怎么样能把这两部分连在一起,我的理解是用static library肯定是不行了,其他有什么办法么?实在不想用dynamic library的方案
: ...................
--
FROM 104.133.9.*
业务代码牵扯模块太多,都是static md link,没可能全部用intel的编译器全部编译一次
看起来只有用动态库方案了
【 在 BigCarrot 的大作中提到: 】
: intel compiler现在转用llvm了,你可以试试直接用clang/llvm
:
--
FROM 115.193.169.*
我的意思是用clang/llvm
【 在 ziqin 的大作中提到: 】
: 标 题: Re: 科学计算混编的问题
: 发信站: 水木社区 (Sat Dec 14 01:34:37 2024), 站内
:
: 业务代码牵扯模块太多,都是static md link,没可能全部用intel的编译器全部编译一次
:
: 看起来只有用动态库方案了
:
:
: 【 在 BigCarrot 的大作中提到: 】
: : intel compiler现在转用llvm了,你可以试试直接用clang/llvm
: :
:
: --
: 我是猪,国家储备...
:
:
: ※ 来源:·水木社区
http://www.mysmth.net·[FROM: 115.193.169.*]
--
FROM 104.133.9.*
怪不得原先的编译器下载链接不好使了
【 在 BigCarrot 的大作中提到: 】
: intel compiler现在转用llvm了,你可以试试直接用clang/llvm
--
FROM 120.253.228.*
现在的build构架的确就是你说的这样
你说的方案我的理解是不可行的 不同编译器出来静态库的abi不一样 混链要出问题 甚至msvc同一个编译器 不同版本之间abi都不向下兼容
事实上 科学计算里 最重要的就是数据结构内存连续性和cpu指令的使用 用和不用速度能差100倍
现在的情况是 算法和业务是两波人在做 业务当然希望算法库是高层库 不要涉及太多细节 算法方面涉及很多业务输入数据的清洗变换和准备 数据准备部分要涉及业务库 算法核心函数需要调用cpu指令
--
FROM 183.137.216.*