【SAM2本地编译部署】

SAM2本地编译部署

记录一下本地部署SAM2遇到的坑和解决办法;
硬件信息:Windows11、4060笔记本
本地部署运行的是small权重模型

默认Pycharm、Anaconda已安装好

一、下载安装VS2022

安装C++桌面开发
这些选上(win10选择对应的SDK)

二、下载CUDA12.1并安装

https://developer.nvidia.com/cuda-12-1-0-download-archive?target_os=Windows&target_arch=x86_64&target_version=11&target_type=exe_local

三、创建conda虚拟环境,安装/升级python到3.10

conda create -n sam2
conda activate sam2
conda install python=3.10.14

四、安装CUDA12.1对应版本的Pytorch 2.3.1等

conda install pytorch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 pytorch-cuda=12.1 -c pytorch -c nvidia

五、此时使用编译SAM2会失败

修改两点内容
1.修改源码中setup.py中如下内容,新增一行 “-allow-unsupported-compiler”

    "nvcc": [
        "-DCUDA_HAS_FP16=1",
        "-D__CUDA_NO_HALF_OPERATORS__",
        "-D__CUDA_NO_HALF_CONVERSIONS__",
        "-D__CUDA_NO_HALF2_OPERATORS__",
        "-allow-unsupported-compiler"  # Add this argument    #这一行新增
    ],

2.修改VS2022文件夹中的\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\include\yvals_core.h 文件内容

#if defined(__CUDACC__) && defined(__CUDACC_VER_MAJOR__)
#if __CUDACC_VER_MAJOR__ < 12 || (__CUDACC_VER_MAJOR__ == 12 && __CUDACC_VER_MINOR__ < 4)   
_EMIT_STL_ERROR(STL1002, "Unexpected compiler version, expected CUDA 12.4 or newer.");
#endif

<4 改为 <1

#if defined(CUDACC) && defined(CUDACC_VER_MAJOR)
#if __CUDACC_VER_MAJOR__ < 12 || (__CUDACC_VER_MAJOR__ == 12 && __CUDACC_VER_MINOR__ < 1)   
_EMIT_STL_ERROR(STL1002, “Unexpected compiler version, expected CUDA 12.4 or newer.”);
#endif

六、编译SAM2

在SAM2源码文件夹编译SAM2

pip install --no-build-isolation -e .

编译过程中会自动安装所需安装包,如果安装失败,则进入conda环境自己换源安装

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值