通过WSL2 Ubuntu18.04搭建CANN算子开发环境

2023-11-02

通过WSL2 Ubuntu18.04搭建CANN算子开发环境

不少开发者的个人电脑的主操作系统为Windows,但CANN算子的开发需要在Linux环境中进行。这个问题常见的解决方案为安装Windows+Linux双系统,或者安装VMware、VirtualBox一类的虚拟机软件,在上面配置Linux虚拟机环境。但这两种方案有一定的局限性,安装双系统每次切换系统都需要重启,且会涉及到修改启动引导等一系列问题,安装比较麻烦,而安装虚拟机的方案宿主机和虚拟机的文件交换较为麻烦,且占用的资源量较多。

有没有一个轻量级、安装便捷、文件交换方便且性能优秀的解决方案呢?Windows Subsystem for Linux(WSL)就满足了这几个需求。WSL2作为WSL1的升级版,有着完整的 Linux 内核和完全的系统调用兼容性,甚至可以调用GPU加速计算。

1.环境介绍

系统:windows10专业版
CANN版本:社区版6.0.RC1.alpha002

2. 安装WSL2系统内核

安装前请确认Windows和BIOS是否支持并已经开启虚拟化

2.1简易安装

wsl.exe --install -d Ubuntu-18.04

2.2手动安装

  • 启用wsl和虚拟机功能
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  • 下载Linux内核
  • 设置WSL2为默认WSL版本
wsl --set-default-version 2
  • 下载Ubuntu18.04发行版
    打开Microsoft Store,搜索Ubuntu 18.04 LTS,点击“获取”按钮进行下载安装。
  • 配置Ubuntu 18.04
    打开Ubuntu 18.04,设置用户名和密码

3.安装系统依赖项

3.1替换软件源并进行升级

3.2安装CANN依赖项

  • 安装系统依赖项
sudo apt-get install -y gcc g++ make cmake zlib1g zlib1g-dev openssl libsqlite3-dev libssl-dev libffi-dev unzip pciutils net-tools libblas-dev gfortran libblas3 libopenblas-dev libncursesw5-dev
  • 安装Python3.7
wget https://www.python.org/ftp/python/3.7.12/Python-3.7.12.tgz
tar -zxvf Python-3.7.12.tgz

cd Python-3.7.12
./configure --prefix=/usr/local/python3.7.12--enable-loadable-sqlite-extensions --enable-shared

./configure --prefix=/usr/local/python3.7.12--enable-loadable-sqlite-extensions --enable-shared --enable-optimizations
#编译安装Python3.7.12
make -j6
sudo make install

vim ~/.bashrc
在文件末尾添加以下内容
export LD_LIBRARY_PATH=/usr/local/python3.7.12/lib:$LD_LIBRARY_PATH
export PATH=/usr/local/python3.7.12/bin:$PATH

chmod -R 777 /usr/local/python3.7.12

python3 --version
pip3 --version

# 设置pip源
mkdir ~/.pip 
cd ~/.pip
vim pip.conf
# 修改文件内容为
[global]
index-url = https://mirrors.huaweicloud.com/repository/pypi/simple
trusted-host = mirrors.huaweicloud.com
timeout = 120

pip3 install attrs numpy decorator sympy cffi pyyaml pathlib2 psutil protobuf scipy requests

4. 安装CANN软件包

4.1 下载CANN toolkit软件包

进入CANN社区版官网:https://www.hiascend.com/software/cann/community

选择x86-64,下载Ascend-cann-toolkit_6.0.RC1.alpha002_linux-x86_64.run。

下载Mobaxterm,使用ssh连接,上传Ascend-cann-toolkit_6.0.RC1.alpha002_linux-x86_64.run到/home/youruser/下

4.2 安装CANN toolkit软件包

登入开发用户,进入软件包所在目录,执行以下命令进行安装。

./Ascend-cann-toolkit_5.0.3.alpha005_linux-x86_64.run --install

下来输入vim ~/.bashrc,在文件末尾加上下面内容,实现打开终端自动配置CANN toolkit路径

source /home/davilsu/Ascend/ascend-toolkit/set-env.sh

至此WSL2 Ubuntu18.04 CANN算子开发环境就搭建完成了。

5.配置Windows下Pycharm连接Ubuntu18.4(可选)进行开发或配合Mindstudio开发

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过WSL2 Ubuntu18.04搭建CANN算子开发环境 的相关文章

  • 使用taskkill停止Windows服务

    我需要帮助来使用 C 终止 Windows 服务 现在要终止该服务 请使用以下选项 从命令 sc queryex ServiceName 发现后PID服务的 taskkill pid 1234 exemple f 为了便于阅读 但如果您明白
  • Windows 睡眠功能极慢

    我正在通过 Windows h 使用 Sleep 命令制作一个程序 并且在 Windows 10 而不是 Windows 7 上运行我的程序时遇到了令人沮丧的差异 我将我的程序简化为下面的程序 它与我的更复杂的程序表现出相同的行为 在 Wi
  • opencv人脸检测示例

    当我在设备上运行应用程序时 应用程序崩溃并显示以下按摩 java lang UnsatisfiedLinkError 无法加载 detector based tracker findLibrary 返回 null 我正在使用 OpenCV
  • 修改linux下的路径

    虽然我认为我已经接近 Linux 专业人士 但显然我仍然是一个初学者 当我登录服务器时 我需要使用最新版本的R 统计软件 R 安装在 2 个地方 当我运行以下命令时 which R I get usr bin R 进而 R version
  • 从 PL/SQL 调用 shell 脚本,但 shell 以 grid 用户而非 oracle 身份执行

    我正在尝试使用 Runtime getRuntime exec 从 Oracle 数据库内部执行 shell 脚本 在 Red Hat 5 5 上运行的 Oracle 11 2 0 4 EE CREATE OR REPLACE proced
  • MinGW Make 抛出“系统找不到指定的路径。”错误

    我正在尝试在 Windows 7 上使用 cmake 生成一个 c 项目 在实际创建项目之前 cmake 会对您的工具链进行快速测试 我正在使用 MinGW 这就是我的问题所在 Cmake 触发 make 构建 最终失败并返回 系统找不到指
  • 如何在Windows 8上正确使用SCardGetStatusChange?

    智能卡服务在 Windows 8 上的行为有所不同 并且 MSDN 尚未更新其文档 任何人都可以提供有关如何正确调用 SCardGetStatusChange 来监视 Windows 8 上的智能卡操作的代码片段吗 提前致谢 这是我为个人博
  • Bash 解析和 shell 扩展

    我对 bash 解析输入和执行扩展的方式感到困惑 对于输入来说 hello world 作为 bash 中的参数传递给显示其输入内容的脚本 我不太确定 Bash 如何解析它 Example var hello world displaywh
  • Linux 中的无缓冲 I/O

    我正在写入大量的数据 这些数据数周内都不会再次读取 由于我的程序运行 机器上的可用内存量 显示为 空闲 或 顶部 很快下降 我的内存量应用程序使用量不会增加 其他进程使用的内存量也不会增加 这让我相信内存正在被文件系统缓存消耗 因为我不打算
  • 带有 CUDA 的 Tensorflow:导入错误

    我已经按照 NVIDIA 教程中的说明一步步安装了 TensorFlow Ubuntu 16 04 桌面版 GTX 970 http www nvidia com object gpu accelerated applications te
  • 通过特定分隔符删除字符串

    我的文件中有几列 其中第二列有 分隔符 我想删除第二列中的第一个 第三个和第四个字符串 并将第二个字符串留在该列中 但我有正常的分隔符空间 所以我不知道 input 22 16050075 A G 16050075 A G 22 16050
  • 如何通过命令行将Flash .fla编译为.swf? [复制]

    这个问题在这里已经有答案了 如何在基于 Windows 的操作系统上通过命令行将 Flash fla 文件编译为 swf 需要安装的命令行工具就可以了 谁能建议我该怎么做 以直接的方式 谢谢 您可以使用JSFL为 Flash IDE 编写脚
  • 将 gnuplot 嵌入现有 QtWidget 中

    我正在用 C 创建一个 伪 实时绘图应用程序 使用 gnuplot 作为绘图后端 我的要求之一是绘图必须位于现有窗口内 而不是有一个单独的绘图窗口 gnuplot 默认为 Gnuplot 有一个选项可以指定 Qt 小部件 ID 这似乎适合我
  • 仅打印“docker-container ls -la”输出中的“Names”列

    发出时docker container ls la命令 输出如下所示 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a67f0c2b1769 busybox tail f dev
  • 如何使用 PowerShell 扩展 ZIP 存档(UTF-8 文件名)

    我的 zip 存档有一个文件 P re No l txt 该 zip 可以通过 Windows 文件资源管理器 7 Zip 或我尝试过的任何其他工具很好地扩展 但我不知道如何从 PowerShell 中做到这一点 显然我已经尝试过展开 存档
  • 应用程序无缘无故地被杀死。怀疑 BSS 高。如何调试呢?

    我已经在CentOs6 6中成功运行我的应用程序 最近 硬件 主板和内存 更新了 我的应用程序现在毫无理由地被杀死 root localhost PktBlaster PktBlaster Killed 文件和 ldd 输出 root lo
  • nginx 上的多个网站和可用网站

    通过 nginx 的基本安装 您的sites available文件夹只有一个文件 default 怎么样sites available文件夹的工作原理以及如何使用它来托管多个 单独的 网站 只是为了添加另一种方法 您可以为您托管的每个虚拟
  • Jenkins中找不到环境变量

    我想在詹金斯中设置很多变量 我试过把它们放进去 bashrc bash profile and profile of the jenkins用户 但 Jenkins 在构建发生时找不到它们 唯一有效的方法是将所有环境变量放入Jenkinsf
  • 在Windows 7上安装curl后缺少libcurl-4.dll

    按照这个人的安装curl后指示 https stackoverflow com a 28757477 1186038 除了第 2 步 已安装Win64 OpenSSL v1 0 1u 轻型相反 因为下载页面中缺少版本 k http slpr
  • gdb查找行号的内存地址

    假设我已将 gdb 附加到一个进程 并且在其内存布局中有一个文件和行号 我想要其内存地址 如何获取文件x中第n行的内存地址 这是在 Linux x86 上 gdb info line test c 56 Line 56 of test c

随机推荐

  • c语言简单介绍&编译过程

    标题 为什么要写 include 编译过程 编译 链接 为什么是 lt gt 中写的是stdio h 函数 Java中称为方法 C语言是大部分人接触的第一门计算机语言 虽然很多学校将C作为一门初始语言 但是其难度还是有的 计算机只具有一维思
  • OLED滚动显示

    少年 一 滚动显示介绍 1 1 具体介绍 1 2 水平滚动命令 1 3 垂直滚动命令 二 代码模块 三 显示效果 四 总结 五 参考资料 一 滚动显示介绍 1 1 具体介绍 SSD1306 OLED驱动芯片 指令详解 1 2 水平滚动命令
  • 普通二本,去过阿里外包,到现在年薪40W+的高级测试工程师,我的两年转行经历...

    我是一个普通二本大学机械专业毕业 14年毕业 16年转行 目前做IT行业的软件测试已经有3年多 职位是高级软件测试工程师 坐标上海 我想现在我也有一点资格谈论关于转行这个话题 希望你在决定转行之前 首先搞清楚转行是你内心热爱还是一时冲动 如
  • 解决pycharm连接mysql报错(DB Navigator-Connection error)

    在上一篇连接操作里 可能不是每个电脑都能一次成功 https blog csdn net forever up422 article details 122631096 spm 1001 2014 3001 5502 如果在最后测试一步出现
  • 【云原生之Docker实战】使用Docker部署BookStack文档管理系统

    云原生之Docker实战 使用Docker部署BookStack文档管理系统 一 BookStack介绍 1 BookStack简介 2 BookStack功能 二 检查本地docker环境 1 检查docker服务状态 2 检查docke
  • Java学习路线(超详细)

    目录 前言 1 学习Java基础知识 2 掌握面向对象编程 OOP 概念 3 熟悉Java集合框架 4 学习Java异常处理 5 学习Java IO 6 掌握Java多线程编程 7 学习Java网络编程 8 学习Java数据库编程 9 学习
  • Android 设置屏幕自动关闭时间

    Android 设置屏幕自动关闭时间 在Android设备上 屏幕的自动关闭时间是指手机在没有操作的情况下 屏幕自动关闭的时间间隔 默认情况下 Android设备的屏幕自动关闭时间为几分钟 但用户可以根据自己的需求进行修改 本文将介绍如何通
  • Linux·字符设备再分析

    Linux系统将设备分成字符设备 块设备 网络设备三类 用户程序调用硬件的过程如下 一 用户级 内核级和系统调用 Linux Unix系统下的进程运行分为用户态和进程态两种状态 我们的应用程序通常仅在用户态下运行 出于保护内核资源的需要 用
  • 安装cargo-generate各种坑【mac + wasm + rust 环境搭建】

    cargo install cargo generate 如果报openssl错误千万别再去装了 各种坑 这个cargo generate可以手动下载安装的 先贴上我的报错信息 run pkg config fail pkg config
  • Python队列Queue详解,超详细

    Queue queue模块简介 queue Queue maxsize 0 queue LifoQueue maxsize 0 queue PriorityQueue maxsize 0 queue SimpleQueue 3 7 新版功能
  • OpenHarmony3.2 beta4上照相机的使用之1--开启照相机预览画面

    随着OpenHarmony的版本更新 在3 2上已经提供了非常丰富的API来调用照相机 此处讲解的是原生的使用相机的流程 并发像Android普通应用开发一样通过一个intent直接调用系统相机应用进行拍照 根据原生的调用相机的API可以让
  • [FPGA中的最大与最小输入延迟]——如何优化输入延迟

    FPGA中的最大与最小输入延迟 如何优化输入延迟 在FPGA设计中 输入延迟是一个重要的考虑因素 输入延迟指的是从信号被输入到FPGA开始处理所需的时间 而FPGA中的最大与最小输入延迟是非常关键的两个参数 最小输入延迟 Minimum I
  • spring事务操作及mysql事务原理

    文章目录 1 事务概念 2 事务操作 搭建事务操作环境 3 事务操作 Spring事务管理介绍 4 事务操作 注解声明式事务管理 5 事务操作 声明式事务管理参数配置 6 事务操作 XML声明式事务管理 7 事务操作 完全注解声明式事务管理
  • 数据结构实验预习报告

    项目1 中国计算机设计大赛赛事统计 问题描述 参加计算机设计大赛的n个学校编号为1 n 赛事分成m个项目 项目的编号为1 m 比赛获奖按照得分降序 取前三名 写一个统计程序产生各种成绩单和得分报表 基本要求 1 每个比赛项目至少有10支参赛
  • mysql数据库表之间关系,一对一、一对多、多对多,多表查询

    多表查询分类 1内连接查询 加粗样式隐式内连接 SELECT t1 name t2 type from book t1 booktype t2 WHERE t1 type t2 tid 显示内连接 SELECT t1 namefrom bo
  • 魔方机器人之下位机编程-----两种串口通信方式的比较

    由于上位机软件的串口通信部分和魔方复原算法部分已经完成 接下来的一步就是如何将魔方复原的具体步骤 字符串的形式 通过串口发送给单片机MC9S12XS128单片机了 调试的过程中 采用了两种串口通信的方式 一种是查询的方式 另一种是中断的方式
  • Cargo更换国内源

    写个猜数字游戏 Rust 程序设计语言 简体中文版 按官网教程进行到引入 rand 0 8 3 后 进行cargo build后会很慢很慢且不稳定 随机更换源 本人MacOS 所以执行以下命令查看 cargo位置 echo HOME car
  • 使用 PCL 和 Python 进行三维点云边界提取

    使用 PCL 和 Python 进行三维点云边界提取 在三维点云处理中 边界提取是一个非常重要的技术 pclpy 是 PCL 的 Python 接口 它提供了一种简单方便的方式来实现三维点云边界提取 本文将介绍如何使用 pclpy 库实现三
  • Maven项目读取resources下文件

    网上有问答如下 问 new FileInputStream src main resources all properties new FileInputStream src main resources all properties 上面
  • 通过WSL2 Ubuntu18.04搭建CANN算子开发环境

    目录 通过WSL2 Ubuntu18 04搭建CANN算子开发环境 1 环境介绍 2 安装WSL2系统内核 2 1简易安装 2 2手动安装 3 安装系统依赖项 3 1替换软件源并进行升级 3 2安装CANN依赖项 4 安装CANN软件包 4