Ubuntu20.4.5+Clion+Falshlight+ArrayFire+Intel-MKL 人工智能深度机器学习C++开发环境搭建

在这里插入图片描述

Ubuntu20.4.5+Clion+Falshlight+ArrayFire+Intel-MKL 人工智能深度机器学习C++开发环境搭建

操作系统环境:

Ubuntu 20.04.5 LTS cpu:6核 内存:8G swap:16G 硬盘 128G
分区: LVM 或 ext4
系统内核:Linux ubuntu 5.15.0-46
C++ 集成IDE:Clion 2022.2
##开始配置操作系统环境

第一步安装操作系统

安装版本:Ubuntu 20.04.4 LTS 安装完毕后升级成 Uubuntu Ubuntu 20.04.5 LTS /Linux ubuntu 5.15.0-46。

第二步开启root账号登录

先安装一下文本编辑软件 vim 这是可选 您也用gedit来编辑

sudo apt-get install vim

1.以普通用户登录系统,创建root用户的密码

sudo passwd root

2.修改50-ubuntu.conf文件

sudo vim /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf

在文件末尾增加如下两行并保存:

greeter-show-manual-login=true #手工输入登陆系统的用户名和密码
allow-guest=false #不允许guest登录(可选)

3.修改gdm-autologin文件

sudo vim /etc/pam.d/gdm-autologin

在第三行前面加#以注释掉
auth required pam_succeed_if.so user != root quiet_success
随后保存并退出
4.修改gdm-password文件

sudo vim /etc/pam.d/gdm-password

在第三行前面加#以注释掉
auth required pam_succeed_if.so user != root quiet_success
随后保存并退出
5.修改 /root/.profile 文件
在终端输入命令:

sudo vim /root/.profile 打开文件

将文件末尾的 mesg n 2> /dev/null || true 这一行修改成

tty -s&&mesg n || true

6.最后一步,测试一下root账号登录
赶紧注销重新登录试一下吧,在登录页面选择 未列出?
然后输入root以及你之前设置的密码,即可成功登录。
####第三部扩大swap缓存值=16G
查看 swap分区或swap 文件大小:

cat /proc/swaps 
free mem
sudo swapon --show

首先输入以下命令停用 SWAP 空间:

sudo swapoff -v /swapfile

如果有必要把swap文件方式改成swap分区 可以使用这个,不然可以忽略此步骤

在 /etc/fstab 文件中删除有效 swap 的行。

最后执行以下命令删除 swapfile 文件:

sudo rm /swapfile

创建一个 Swap 文件

sudo fallocate -l 16G /swapfile

执行以下命令为 swapfile 文件设置正确的权限:

sudo chmod 600 /swapfile
>载入  Swap 文件
```shell
sudo mkswap /swapfile

激活 Swap 文件

sudo swapon /swapfile

可以用以下命令查看 当前swap情况

sudo swapon --show
第四步骤-安装flashlight(原WAV2LETTER++)ubuntu20.4.4 操作系统依赖环境软件包

本配置我选用基于CPU的机器学习,ubuntu:20.04 as cpu_base_builder
本步骤我全程在root账号下面执行的所以没加sudo命令

首先更新apt-get 软件包列表

apt-get update

1.先安装基础开发包(build-essential ca-certificates wget git g++ cmake tar curl zip unzip)

apt-get install -y --no-install-recommends build-essential
apt-get install -y --no-install-recommends ca-certificates \
 wget git g++ cmake tar curl zip unzip pkg-config

2.为后面要安装的intel-MKL,安装相关依赖

apt-get install -y --no-install-recommends apt-transport-https gpg-agent gnupg2 

3.为后面要安装的kenml,安装相关依赖

apt-get install -y --no-install-recommends libboost-thread-dev \
 libboost-test-dev libboost-system-dev libboost-program-options-dev 

4.为后面要安装的arrayfire CPU backend,安装相关依赖

apt-get install -y --no-install-recommends  libboost-stacktrace-dev 

5.为后面要安装的OpenBLAS,安装相关依赖

 apt-get install -y --no-install-recommends libopenblas-dev liblapacke-dev

6.为后面要安装的 ATLAS,安装相关依赖

 apt-get install -y --no-install-recommends libatlas3-base \
  libatlas-base-dev liblapacke-dev

7.为后面要安装的 FFTW3,安装相关依赖

apt-get install -y --no-install-recommends  libfftw3-dev 

8.为后面要安装的ssh for OpenMPI #1,安装相关依赖

 apt-get install -y --no-install-recommends openssh-server openssh-client

9.为后面要安装的OpenMPI #2,安装相关依赖

  apt-get install -y --no-install-recommends libopenmpi-dev openmpi-bin

10.为后面要安装的kenlm #2,安装相关依赖

  apt-get install -y --no-install-recommends  zlib1g-dev libbz2-dev liblzma-dev

11.为后面要安装的flashlight,安装相关依赖

apt-get update
apt-get install -y --no-install-recommends vim emacs nano htop
# libsndfile 依赖
apt-get install -y --no-install-recommends libsndfile1-dev
# gflags 依赖
apt-get install -y --no-install-recommends libgflags-dev libgflags2.2
 # glog 依赖
apt-get install -y --no-install-recommends libgoogle-glog-dev libgoogle-glog0v5
# python sox 依赖
apt-get install -y --no-install-recommends sox libsox-dev python3-dev python3-pip python3-distutils
# python (for bindings and preprocessing)
python3 -m pip --no-cache-dir install launchpadlib
python3 -m pip --no-cache-dir install --upgrade setuptools numpy sox tqdm
#安装doxygen 依赖
sudo apt-get install doxygen-latex  doxygen-doc doxygen-gui graphviz
#安装 sphinx 依赖
sudo apt-get install sphinxsearch

12.清除安装产生的临时文件

    apt-get clean 
    apt-get -y autoremove 
    rm -rf /var/lib/apt/lists/*

第五步骤-安装Git下载指定版本的ArrayFire(v3.7.3),编译源文件的CPU版本并安装

arrayfire 的 CPU backend 在 https://github.com/arrayfire/arrayfire/wiki/
具体下载、编译、安装方法如下:

cd /mytools 
git clone --branch v3.7.3 --depth 1 --recursive --shallow-submodules \
 https://github.com/arrayfire/arrayfire.git 
mkdir -p arrayfire/build
cd arrayfire/build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/arrayfire \
 -DAF_BUILD_CPU=ON -DAF_BUILD_CUDA=OFF -DAF_BUILD_OPENCL=OFF \
  -DAF_BUILD_EXAMPLES=OFF -DAF_WITH_IMAGEIO=OFF -DBUILD_TESTING=OFF \
   -DAF_BUILD_DOCS=OFF
make install -j$(nproc)

第六步骤-安装Git下载指定版本的cpu_onednn(vv2.5.2),编译源文件的CPU版本并安装

oneDNN 的 CPU backend 在 oneDNN https://github.com/oneapi-src/oneDNN
具体下载、编译、安装方法如下:

cd /root/mytools
git clone --branch v2.5.2 --depth 1 https://github.com/oneapi-src/onednn.git
mkdir -p onednn/build
cd onednn/build
cmake .. -DCMAKE_BUILD_TYPE=Release \
 -DCMAKE_INSTALL_PREFIX=/opt/onednn -DDNNL_BUILD_EXAMPLES=OFF
make install -j$(nproc)

第七步骤-安装Git下载指定版本的cpu Gloo(Tag:1da2117),编译源文件的CPU版本并安装

cpu Gloo在 https://github.com/facebookincubator/gloo.git
具体下载、编译、安装方法如下:

cd /root/mytools
git clone https://github.com/facebookincubator/gloo.git
cd gloo
git checkout 1da2117
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/gloo -DUSE_MPI=ON
make install -j$(nproc)

第八步骤-安装Git下载指定版本的cpu KenLM (Tag:0c4dd4e),编译源文件的CPU版本并安装

cpu KenLM在 https://github.com/kpu/kenlm
具体下载、编译、安装方法如下:

cd /root/mytools
git clone https://github.com/kpu/kenlm.git
cd kenlm
git checkout 0c4dd4e
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release \
 -DCMAKE_INSTALL_PREFIX=/opt/kenlm \
  -DCMAKE_POSITION_INDEPENDENT_CODE=ON
make install -j$(nproc)

第九步骤-安装wget生成apt下载列表中指定版本的intel-MKL(2020.4-912)并安装

1.intel-MKL下载链接在 https://apt.repos.intel.com/mk
具体下载、安装方法如下:

cd /root/mytools
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
sh -c 'echo deb https://apt.repos.intel.com/mkl all main > /etc/apt/sources.list.d/intel-mkl.list'
apt-get update
apt-get install -y --no-install-recommends intel-mkl-64bit-2020.4-912

2.清除安装产生的临时文件

    apt-get clean 
    apt-get -y autoremove 
    rm -rf /var/lib/apt/lists/*

第十步骤-在root/.bashrc 添加环境路经

通过vim root/.bashrc 打开 root用户根目录下的.bashrc文件具体下载、安装方法如下:

#进入文件
vim root/.bashrc
 #在文件最末尾添加以下两行内容,然后用 wq! 保存退出
export MKLROOT=/opt/intel/mkl
export  KENLM_ROOT=/opt/kenlm

第十一步骤-安装Git下载指定版本的flashlight(v:0.3.2 Tag:e16682f),编译源文件的CPU版本并安装

flashlight在 https://github.com/flashlight/flashlight.git
具体下载、编译、安装方法如下:

cd /root/mytools
git clone https://github.com/flashlight/flashlight.git
cd flashlight
git checkout e16682f
mkdir -p build
cd build
 cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/flashlight \
  -DFL_BUILD_ALL_APPS=ON -DFL_BUILD_ALL_LIBS=ON \
   -DFL_BUILD_ALL_PKGS=ON -DFL_BUILD_PKG_RUNTIME=ON \
    -DFL_BACKEND=CPU -DGloo_DIR=/opt/gloo/share/cmake \
     -DDNNL_DIR=/opt/onednn/lib/cmake/dnnl
make install -j$(nproc)
第十二步骤- 在Clion 上配置 flashlight函数调用的cmake配置

在File->New->project->选择c++ 控制台程序,程序版本选择c++17,项目名称 起个myProject内容如下:
具体下载、编译、安装方法如下:
项目中main.cpp 文件名改为 project.cpp,用以下代码覆盖project.cpp内容:

#include <iostream>

#include <arrayfire.h>
#include <flashlight/fl/flashlight.h>

int main() {
    fl::Variable v(af::constant(1, 1), true);
    auto result = v + 10;
    std::cout << "Hello World!" << std::endl;
    af::print("Array value is ", result.array()); // 11.000
    return 0;
}

项目中CMakeLists.txt 文件内容,用以下代码覆盖:

cmake_minimum_required(VERSION 3.16)
project(myproject)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_executable(myproject project.cpp)
find_package(flashlight CONFIG REQUIRED)
target_link_libraries(myproject PRIVATE flashlight::flashlight)
第十三步骤- 在Clion 上配置 flashlight函数调用的cmake配置

在File->settings->build,execution,Deployment->cmake->cmake options 栏里面添加cmake编译参数,内容如下:
具体下载、编译、安装方法如下:

-DKENLM_INCLUDE_DIRS=/opt/kenlm -DFL_BACKEND=CPU \
 -DGloo_DIR=/opt/gloo/share/cmake \
 -DDNNL_DIR=/opt/onednn/lib/cmake/dnnl \
 -Dflashlight_DIR=/opt/flashlight/share/flashlight/cmake

第十四步骤- 在Clion 上配置 flashlight函数调用的cmake配置

在Clion中您直接运行项目,等待编译运行…,最后输出结果如下:
具体方法如下:

/root/CLionProjects/myproject/cmake-build-debug/myproject
Hello World!
Array value is 
[1 1 1 1]
   11.0000 

Process finished with exit code 0

如果出现以上内容恭喜您!,您已经成功搭建Clion+flashlight深度机器学习C++开发环境部署!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值