官网地址:

https://www.mindspore.cn/install

系统:Ubuntu18.04

硬件:

i7-9700k CPU

2060super nvidia显卡

由于考虑到mindspore版本更新,依赖环境的变化,因此将mindspore依赖的环境安装到自建文件夹下,

给出下面操作中环境的安装文件夹:

/home/devilmaycry/anaconda3/mindspore_envs
这个路径可以按照个人情况进行设置的,只要下面均保持一致即可。

下文中修改 .bashrc  是指打开.bashrc :

vim ~/.bashrc

本文假设系统中已经为GPU显卡安装好驱动程序了,因此本文不介绍驱动的安装。

(请注意:下面的安装建议按照步骤来进行)

================================================================

1.  安装CUDA11.1.0 和 cuDNN 8.0.X版本:

cuda安装

创建cuda的安装目录:

mkdir cuda11.1

查看所创建路径:

/home/devilmaycry/anaconda3/mindspore_envs/cuda11.1

下载并安装:

wget https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda_11.1.0_455.23.05_linux.run

sh ./cuda_11.1.0_455.23.05_linux.run --toolkit  --toolkitpath=/home/devilmaycry/anaconda3/mindspore_envs/cuda11.1  --silent

2.   cuDnn安装:

下载地址:

https://developer.nvidia.com/compute/machine-learning/cudnn/secure/8.0.5/11.1_20201106/cudnn-11.1-linux-x64-v8.0.5.39.tgz

解压文件:

tar -zxvf cudnn-11.1-linux-x64-v8.0.5.39.tgz

拷贝解压后的文件到cuda安装目录内:

 cp cuda/include/*  /home/devilmaycry/anaconda3/mindspore_envs/cuda11.1/include

 cp cuda/lib64/*  /home/devilmaycry/anaconda3/mindspore_envs/cuda11.1/lib64

配置环境变量:

修改  .bashrc  文件

# cuda&cudnn
export LD_LIBRARY_PATH=/home/devilmaycry/anaconda3/mindspore_envs/cuda11.1/lib64:$LD_LIBRARY_PATH
export PATH=/home/devilmaycry/anaconda3/mindspore_envs/cuda11.1/bin:$PATH

================================================================

 GCC的安装:

下载gcc 7.3.0版本安装包,执行以下命令:

wget http://ftp.gnu.org/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz

执行tar -xzf gcc-7.3.0.tar.gz解压源码包。

执行cd gcc-7.3.0,进入到源码包目录。

继续下面操作前清空系统内的环境变量:

export LIBRARY_PATH=
export LD_LIBRARY_PATH=
export C_INCLUDE_PATH=
export CPLUS_INCLUDE_PATH=

运行以下命令,进行安装前的配置。

安装依赖环境:

./contrib/download_prerequisites

配置环境:

./configure --prefix=/home/devilmaycry/anaconda3/mindspore_envs/gcc_7.3.0 --enable-bootstrap -enable-threads=posix --enable-checking=release --enable-languages=c,c++ --disable-multilib

编译安装:

make -j8 && make install

配置系统环境:  修改  .bashrc  文件,添加内容:

# gcc
export PATH=/home/devilmaycry/anaconda3/mindspore_envs/gcc_7.3.0/bin:$PATH ###export LIBRARY_PATH=/home/devilmaycry/anaconda3/mindspore_envs/gcc_7.3.0/share:$LIBRARY_PATH
export LD_LIBRARY_PATH=/home/devilmaycry/anaconda3/mindspore_envs/gcc_7.3.0/lib64:$LD_LIBRARY_PATH export C_INCLUDE_PATH=/home/devilmaycry/anaconda3/mindspore_envs/gcc_7.3.0/include:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=$C_INCLUDE_PATH:$CPLUS_INCLUDE_PATH

=========================================================

 

m4  下载安装:

下载:

wget   http://ftp.gnu.org/gnu/m4/m4-1.4.16.tar.bz2

解压:

tar -jxvf m4-1.4.16.tar.bz2

修改m4_1.4.16下源文件中代码:(https://blog.csdn.net/weixin_34168880/article/details/91842744

vi lib/stdio.in.h

查找字段:gets is a security hole

注释
将_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); 字段和他之前的注释 /* 一块注释掉,如下

/* It is very rare that the developer ever has full control of stdin,
so any use of gets warrants an unconditional warning. Assume it is
always declared, since it is required by C89.
#undef gets
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); */

再添加如下内容:

    #if defined(__GLIBC__) && !defined(__UCLIBC__) && !__GLIBC_PREREQ(2, 16)

    _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");

    #endif

配置:

./configure --prefix=/home/devilmaycry/anaconda3/mindspore_envs/m4_1.4.16/

编译安装

make && make install

 

配置系统环境变量:

修改 .bashrc  文件

export PATH=/home/devilmaycry/anaconda3/mindspore_envs/m4_1.4.16/bin:$PATH

说明: 其中,/home/devilmaycry/anaconda3/mindspore_envs/m4_1.4.16   路径为我们刚才编译源码配置安装路径的地址。

==============================================================

需要注意:安装好m4后需要执行命令  soure  ~/.bashrc   ,然后才可以继续安装gmp。

安装gmp 6.1.2

下载gmp 6.1.2源码包:

wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.xz

解压到当前文件夹:

tar -xvf  gmp-6.1.2.tar.xz

配置:

./configure --prefix=/home/devilmaycry/anaconda3/mindspore_envs/gmp_6.1.2/ --enable-cxx

编译安装:

make && make install

配置系统环境变量:  修改 .bashrc 文件

# gmp
export LIBRARY_PATH=/home/devilmaycry/anaconda3/mindspore_envs/gmp_6.1.2/lib:$LIBRARY_PATH
export LD_LIBRARY_PATH=/home/devilmaycry/anaconda3/mindspore_envs/gmp_6.1.2/lib:$LD_LIBRARY_PATH export C_INCLUDE_PATH=/home/devilmaycry/anaconda3/mindspore_envs/gmp_6.1.2/include:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=$C_INCLUDE_PATH:$CPLUS_INCLUDE_PATH



 

测试 gmp 是否安装并配置成功:(声明:测试部分内容源于:https://blog.csdn.net/just_h/article/details/82667787

代码:

# test.cpp 文件

#include <gmpxx.h>
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
mpz_t a,b,c;
mpz_init(a);
mpz_init(b);
mpz_init(c);
gmp_scanf("%Zd%Zd",a,b);
mpz_add(c,a,b);
gmp_printf("c= %Zd\n",c);
return 0;
}

编译:

g++ test.cpp -o test -lgmp

运行:

 openssl 的安装:

下载地址:

https://www.openssl.org/source/openssl-1.1.1k.tar.gz

解压:

tar -zxvf openssl-1.1.1k

配置:

./config --prefix=/home/devilmaycry/anaconda3/mindspore_envs/openssl_1.1.1

编译并安装:

make -j8&& make install

配置系统环境:修改 .bashrc 文件,  添加内容:

# openssl
export OPENSSL_ROOT_DIR=/home/devilmaycry/anaconda3/mindspore_envs/openssl_1.1.1 export OPENSSL_INCLUDE_DIR=/home/devilmaycry/anaconda3/mindspore_envs/openssl_1.1.1/include
export OPENSSL_CRYPTO_LIBRARY=/home/devilmaycry/anaconda3/mindspore_envs/openssl_1.1.1/lib

重新载入  .bashrc 文件:

source ~/.bashrc

cmake 安装:

下载文件:

wget    https://github.com/Kitware/CMake/releases/download/v3.21.0/cmake-3.21.0.tar.gz

解压:

tar -zxvf cmake-3.21.0.tar.gz

配置:

./configure --prefix=/home/devilmaycry/anaconda3/mindspore_envs/cmake_3.21.0

编译并安装:

make -j8&& make install

配置系统环境:

修改  ~/.bashrc 文件,添加内容:

# make
export PATH=/home/devilmaycry/anaconda3/mindspore_envs/cmake_3.21.0/bin:$PATH

重新载入  .bashrc 文件:

source ~/.bashrc

patch 的安装:

下载文件:

wget  https://ftp.gnu.org/gnu/patch/patch-2.7.6.tar.gz

解压:

tar -zxvf patch-2.7.6.tar.gz

配置:

./configure --prefix=/home/devilmaycry/anaconda3/mindspore_envs/patch_2.7.6

编译并安装:

make -j8&& make install

配置系统环境:

修改  ~/.bashrc 文件,添加内容:

# patch
export PATH=/home/devilmaycry/anaconda3/mindspore_envs/patch_2.7.6/bin:$PATH

重新载入  .bashrc 文件:

source ~/.bashrc

 安装Autoconf

下载文件:

wget https://ftp.gnu.org/gnu/autoconf/autoconf-2.71.tar.gz

解压:

tar -zxvf autoconf-2.71.tar.gz

配置:

./configure --prefix=/home/devilmaycry/anaconda3/mindspore_envs/autoconf_2.71

编译并安装:

make -j8&& make install

配置系统环境:

修改  ~/.bashrc 文件,添加内容:

# autoconf
export PATH=/home/devilmaycry/anaconda3/mindspore_envs/autoconf_2.71/bin:$PATH

重新载入  .bashrc 文件:

source ~/.bashrc

安装   libtool 

下载地址:

wget https://ftpmirror.gnu.org/libtool/libtool-2.4.6.tar.gz

解压:

tar -zxvf libtool-2.4.6.tar.gz

配置:

./configure  --prefix=/home/devilmaycry/anaconda3/mindspore_envs/libtool_2.4.6

编译并安装:

make -j8&& make install

配置系统环境:

修改  ~/.bashrc 文件,添加内容:

# libtool
export PATH=/home/devilmaycry/anaconda3/mindspore_envs/libtool_2.4.6/bin:$PATH

重新载入  .bashrc 文件:

source ~/.bashrc

安装automake

下载:

wget https://ftp.gnu.org/gnu/automake/automake-1.16.3.tar.gz

解压:

tar -zxvf automake-1.16.3.tar.gz

配置:

./configure  --prefix=/home/devilmaycry/anaconda3/mindspore_envs/automake_1.16.3

编译并安装:

make -j8&& make install

配置系统环境:

修改  ~/.bashrc 文件,添加内容:

# automake
export PATH=/home/devilmaycry/anaconda3/mindspore_envs/automake_1.16.3/bin:$PATH

重新载入  .bashrc 文件:

source ~/.bashrc

安装flex

下载文件:

wget https://github.com/westes/flex/files/981163/flex-2.6.4.tar.gz

解压:

tar -zxvf flex-2.6.4.tar.gz

配置:

./configure  --prefix=/home/devilmaycry/anaconda3/mindspore_envs/flex_2.6.4

编译并安装:

make -j8&& make install

修改系统环境,修改 .bashrc文件,添加内容:

# flex
export PATH=/home/devilmaycry/anaconda3/mindspore_envs/flex_2.6.4/bin:$PATH export LIBRARY_PATH=/home/devilmaycry/anaconda3/mindspore_envs/flex_2.6.4/lib:$LIBRARY_PATH
export LD_LIBRARY_PATH=/home/devilmaycry/anaconda3/mindspore_envs/flex_2.6.4/lib:$LD_LIBRARY_PATH export C_INCLUDE_PATH=/home/devilmaycry/anaconda3/mindspore_envs/flex_2.6.4/include:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=$C_INCLUDE_PATH:$CPLUS_INCLUDE_PATH

重新载入  .bashrc 文件:

source ~/.bashrc

安装Python环境和wheel

这里我们使用anaconda下的Python环境,anaconda的安装这里不进行讲解:

创建Python环境,命名mindspore_1.3.0:

conda create -n mindspore_1.3.0 python=3.7.5

安装 wheel :

激活Python环境:

activate  mindspore_1.3.0

安装:

pip install wheel

安装NUMA

下载:

wget https://github.com/numactl/numactl/releases/download/v2.0.14/numactl-2.0.14.tar.gz

解压:

tar -zxvf numactl-2.0.14.tar.gz

配置:

./configure --prefix=/home/devilmaycry/anaconda3/mindspore_envs/numactl_2.0.14

编译并安装:

make -j8&& make install

修改系统环境,修改 .bashrc文件,添加内容:

# numa
export PATH=/home/devilmaycry/anaconda3/mindspore_envs/numactl_2.0.14/bin:$PATH export LIBRARY_PATH=/home/devilmaycry/anaconda3/mindspore_envs/numactl_2.0.14/lib:$LIBRARY_PATH
export LD_LIBRARY_PATH=/home/devilmaycry/anaconda3/mindspore_envs/numactl_2.0.14/lib:$LD_LIBRARY_PATH export C_INCLUDE_PATH=/home/devilmaycry/anaconda3/mindspore_envs/numactl_2.0.14/include:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=$C_INCLUDE_PATH:$CPLUS_INCLUDE_PATH

重新载入  .bashrc 文件:

source ~/.bashrc

=========================================================================

必要环境已经全部安装好,正式编译:

git clone https://gitee.com/mindspore/mindspore.git -b r1.3

bash build.sh -e gpu

失败。

报错信息:

---------------- MindSpore: build start ----------------

mkdir: 已创建目录 '/tmp/mindspore/build'

mkdir: 已创建目录 '/tmp/mindspore/build//package'

mkdir: 已创建目录 '/tmp/mindspore/build//package/mindspore'

mkdir: 已创建目录 '/tmp/mindspore/build//package/mindspore/lib'

子模组 'graphengine'(https://gitee.com/mindspore/graphengine.git)未对路径 'graphengine' 注册

正克隆到 '/tmp/mindspore/graphengine'...

子模组路径 'graphengine':检出 'acc2472c4119d70b579d7ac2f7a6bbf2c344af29'

子模组 'metadef'(https://gitee.com/ascend/metadef.git)未对路径 'metadef' 注册

正克隆到 '/tmp/mindspore/graphengine/metadef'...

子模组路径 'metadef':检出 '0a9ebe1c7f7b27554659f39e387110ac30d4a1e6'

子模组 'akg'(https://gitee.com/mindspore/akg.git)未对路径 'akg' 注册

正克隆到 '/tmp/mindspore/akg'...

子模组路径 'akg':检出 '796260887e9c87964aad87ab8154211060870fec'

start build mindspore project.

mkdir: 已创建目录 '/tmp/mindspore/build//mindspore'

-DDEBUG_MODE=off -DBUILD_PATH=/tmp/mindspore/build/ -DENABLE_INFER=ON
-DENABLE_DUMP_PROTO=ON -DENABLE_DUMP_IR=on -DENABLE_PYTHON=on
-DENABLE_MPI=ON -DENABLE_GPU=ON -DUSE_CUDA=ON -DCUDA_PATH=
-DMS_REQUIRE_CUDA_VERSION=10.1 -DENABLE_CPU=ON -DX86_64_SIMD=off
-DARM_SIMD=off -DENABLE_MINDDATA=ON -DUSE_GLOG=ON -DENABLE_AKG=ON
-DENABLE_DEBUGGER=ON

-- The C compiler identification is GNU 7.3.0

-- The CXX compiler identification is GNU 7.3.0

-- Detecting C compiler ABI info

-- Detecting C compiler ABI info - done

-- Check for working C compiler: /home/devilmaycry/anaconda3/mindspore_envs/gcc_7.3.0/bin/gcc - skipped

-- Detecting C compile features

-- Detecting C compile features - done

-- Detecting CXX compiler ABI info

-- Detecting CXX compiler ABI info - done

-- Check for working CXX compiler: /home/devilmaycry/anaconda3/mindspore_envs/gcc_7.3.0/bin/g++ - skipped

-- Detecting CXX compile features

-- Detecting CXX compile features - done

-- Found Python3:
/home/devilmaycry/anaconda3/envs/mindspore_1.3.0/bin/python3.7 (found
version "3.7.5") found components: Interpreter Development
Development.Module Development.Embed

Python3 found, version: 3.7.5

Python3 library path:

Python3 interpreter: /home/devilmaycry/anaconda3/envs/mindspore_1.3.0/bin/python3.7

-- Found Patch: /home/devilmaycry/anaconda3/mindspore_envs/patch_2.7.6/bin/patch

PATCH_EXECUTABLE=/home/devilmaycry/anaconda3/mindspore_envs/patch_2.7.6/bin/patch

-- Looking for pthread.h

-- Looking for pthread.h - found

-- Performing Test CMAKE_HAVE_LIBC_PTHREAD

-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed

-- Looking for pthread_create in pthreads

-- Looking for pthread_create in pthreads - not found

-- Looking for pthread_create in pthread

-- Looking for pthread_create in pthread - found

-- Found Threads: TRUE

CMake Error at cmake/check_requirements.cmake:66 (message):

Required package gmp not found, please install gmp and try building

MindSpore again.

Call Stack (most recent call first):

CMakeLists.txt:13 (include)

-- Configuring incomplete, errors occurred!

See also "/tmp/mindspore/build/mindspore/CMakeFiles/CMakeOutput.log".

See also "/tmp/mindspore/build/mindspore/CMakeFiles/CMakeError.log".

参考:

https://gitee.com/mindspore/mindspore/issues/I284ZL

========================================================================

另附其他环境的安装方式:

mpfr  的安装:

下载地址:

wget https://www.mpfr.org/mpfr-current/mpfr-4.1.0.tar.gz

解压文件:

tar -zxvf mpfr-4.1.0.tar.gz

配置:

./configure --prefix=/home/devilmaycry/anaconda3/mindspore_envs/mpfr_4.1.0/

编译安装:

make && make install

配置文件: 添加内容到  .bashrc 文件中

# mpfr
export LIBRARY_PATH=/home/devilmaycry/anaconda3/mindspore_envs/mpfr_4.1.0/lib:$LIBRARY_PATH
export LD_LIBRARY_PATH=/home/devilmaycry/anaconda3/mindspore_envs/mpfr_4.1.0/lib:$LD_LIBRARY_PATH export C_INCLUDE_PATH=/home/devilmaycry/anaconda3/mindspore_envs/mpfr_4.1.0/include:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=$C_INCLUDE_PATH:$CPLUS_INCLUDE_PATH

测试安装及配置是否成功:

代码: #test.cpp

#include <stdio.h>
#include <mpfr.h>
int main (void)
{
printf ("MPFR library: %-12s\nMPFR header: %s (based on %d.%d.%d)\n",
mpfr_get_version (), MPFR_VERSION_STRING, MPFR_VERSION_MAJOR,
MPFR_VERSION_MINOR, MPFR_VERSION_PATCHLEVEL);
return 0;
}

编译及运行:

gcc test.cpp -o test  -lmpfr

mpc  的安装:

下载:

wget  https://ftp.gnu.org/gnu/mpc/mpc-1.2.1.tar.gz

解压:

tar -zxvf mpc-1.2.1.tar.gz

配置:

./configure --prefix=/home/devilmaycry/anaconda3/mindspore_envs/mpc_1.2.1/

编译安装:

make && make install

修改   .bashrc  文件,添加内容:

# mpc
export LIBRARY_PATH=/home/devilmaycry/anaconda3/mindspore_envs/mpc_1.2.1/share:$LIBRARY_PATH
export LD_LIBRARY_PATH=/home/devilmaycry/anaconda3/mindspore_envs/mpc_1.2.1/lib:$LD_LIBRARY_PATH export C_INCLUDE_PATH=/home/devilmaycry/anaconda3/mindspore_envs/mpc_1.2.1/include:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=$C_INCLUDE_PATH:$CPLUS_INCLUDE_PATH

==================================================================

记一次失败记录: MindSpore1.3.0 GPU 源码安装 —— Ubuntu18.04系统 (最终安装结果为失败)的更多相关文章

  1. Spark2.1.0之源码分析——事件总线

    阅读提示:阅读本文前,最好先阅读<Spark2.1.0之源码分析——事件总线>.<Spark2.1.0事件总线分析——ListenerBus的继承体系>及<Spark2. ...

  2. Ubuntu12.04编译Android4.0.1源码全过程-----附wubi安装ubuntu编译android源码硬盘空间不够的问题解决

    昨晚在编译源码,make一段时间之后报错如下: # A fatal error has been detected by the Java Runtime Environment: # # SIGSE ...

  3. jQuery 2.0.3 源码分析Sizzle引擎解析原理

    jQuery 2.0.3 源码分析Sizzle引擎 - 解析原理 声明:本文为原创文章,如需转载,请注明来源并保留原文链接Aaron,谢谢! 先来回答博友的提问: 如何解析 div > p + ...

  4. Spring Boot 2.0系列文章(五):Spring Boot 2.0 项目源码结构预览

    关注我 转载请务必注明原创地址为:http://www.54tianzhisheng.cn/2018/04/15/springboot2_code/ 项目结构 结构分析: Spring-boot-pr ...

  5. 从路由原理出发,深入阅读理解react-router 4.0的源码

      react-router等前端路由的原理大致相同,可以实现无刷新的条件下切换显示不同的页面.路由的本质就是页面的URL发生改变时,页面的显示结果可以根据URL的变化而变化,但是页面不会刷新.通过前 ...

  6. Linux 0.11源码阅读笔记-文件管理

    Linux 0.11源码阅读笔记-文件管理 文件系统 生磁盘 未安装文件系统的磁盘称之为生磁盘,生磁盘也可以作为文件读写,linux中一切皆文件. 磁盘分区 生磁盘可以被分区,分区中可以安装文件系统, ...

  7. 一起学习jQuery2.0.3源码—1.开篇

    write less,do more jQuery告诉我们:牛逼的代码不仅精简而且高效! 2006年1月由美国人John Resig在纽约的barcamp发布了jQuery,吸引了来自世界各地众多Ja ...

  8. 英蓓特Mars board的android4.0.3源码编译过程

    英蓓特Mars board的android4.0.3源码编译过程 作者:StephenZhu(大桥++) 2013年8月22日 若要转载,请注明出处 一.编译环境搭建及要点: 1. 虚拟机软件virt ...

  9. Android L(5.0)源码之手势识别onTouchEvent

    onTouchEvent同样也是在view中定义的一个方法.处理传递到view 的手势事件.通过MotionEvent的getAction()方法来获取Touch事件的类型,类型包括ACTION_DO ...

  10. springboot2.0.3源码篇 - 自动配置的实现,发现也不是那么复杂

    前言 开心一刻 女儿: “妈妈,你这么漂亮,当年怎么嫁给了爸爸呢?” 妈妈: “当年你爸不是穷嘛!‘ 女儿: “穷你还嫁给他!” 妈妈: “那时候刚刚毕业参加工作,领导对我说,他是我的扶贫对象,我年轻 ...

随机推荐

  1. vm ware cent os 共享文件夹

    1.VM中安装vm-tools 2.在VM 虚拟机设置中添加共享文件夹. 3.重启虚拟机 4.在/mnt/ 里新建一个名为"win"的文件夹 5.在cent os 中执行: vmw ...

  2. CentOS 7- 配置阿里镜像源

    1.备份CentOS 7系统自带yum源配置文件/etc/yum.repos.d/CentOS-Base.repo命令: mv /etc/yum.repos.d/CentOS-Base.repo /e ...

  3. python3读csv文件,出现UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in position 0: invalid con

    使用csv.reader(file)读csv文件时,出现如下错误:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in positio ...

  4. RSA非对称加密算法中的密钥对生成与传输

    PrimiHub一款由密码学专家团队打造的开源隐私计算平台,专注于分享数据安全.密码学.联邦学习.同态加密等隐私计算领域的技术和内容. RSA(Rivest–Shamir–Adleman)加密算法是一 ...

  5. 在WPF中使用WriteableBitmap对接工业相机及常用操作

    写作背景 写这篇文章主要是因为工业相机(海康.大恒等)提供的.NET开发文档和示例程序都是用WinForm项目来说明举例的,而在WPF项目中对图像的使用和处理与在WinForm项目中有很大不同.在Wi ...

  6. Linux查看系统占用

    ## 查看内存占用 #CPU占用最多的前10个进程: ps auxw|head -1;ps auxw|sort -rn -k3|head -10 #内存消耗最多的前10个进程 ps auxw|head ...

  7. NXP i.MX 8M Plus工业开发板硬件说明书( 四核ARM Cortex-A53 + 单核ARM Cortex-M7,主频1.6GHz)

    前  言 本文主要介绍创龙科技TLIMX8MP-EVM评估板硬件接口资源以及设计注意事项等内容. 创龙科技TLIMX8MP-EVM是一款基于NXP i.MX 8M Plus的四核ARM Cortex- ...

  8. 数据结构—包(Bag)

    数据结构中的包,其实是对现实中的包的一种抽象. 想像一下现实中的包,比如书包,它能做什么?有哪些功能?首先它用来装东西,里面的东西可以随便放,没有规律,没有顺序,当然,可以放多个相同的东西.其次,东西 ...

  9. Mac mysql 5.7.x 设置服务开机自启动

    在终端输入 sudo vi /Library/LaunchDaemons/com.mysql.mysql.plist 输入以下内容 <?xml version="1.0" e ...

  10. TypeScript 学习笔记 — 类型推断和类型保护(十一)

    目录 类型推断 1.赋值推断 2.返回值推断 3.函数推断(反向推断) 4.属性推断 5.类型反推 6.索引访问操作符 7.类型映射 类型保护 1.typeof 类型保护 2.instanceof 类 ...