算法开发工程师工具环境配置指南

研发环境配置

git

vscode

  • python拓展
  • c++拓展

ssh

  • remote ssh
  • 如何在VSCode中使用SSH客户端

Anaconda

  • 安装后找不到conda命令:环境变量,只添加Script就可以
  • powershell命令前没有(base):执行conda init
  • 执行上一步之后powershell出现红色报警无法加载文件 C:\Users\Mi\Documents\WindowsPowerShell\profile.ps1:解决“无法加载文件 ***\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本”
  • Linux下.condarc文件中存储相关源等,如果源不生效可以删除default

模型

  • Netron
  • onnx模型显示输出形状

MSYS2

  • cmake与make需要自己安装:windows下使用MSYS2安装MinGW并配置CMake:更新,也可以通过msys2安装,十分方便,甚至git也可以通过这个包管理软件,命令:pacman -S
  • 安装完成以后需要将C:\msys64\mingw64\bin下面的mingw32-make.exe拷贝一份从新命令为make.exe,这样系统就可以找到这个可执行文件了
  • 安装make之后拥有一个别名mingw32-make.exe,直接用这个可以找到,有一些博客建议复制一份make.exe,可能会出错,详情见我之前的博客
  • 可以通过MSYS2安装ruby、git

Android

  • Android Studio是一个SDK,是用来提供java环境的,而有一个概念叫做NDK,是可以为java提供jni(对于C/C++)的接口的,二者的作用不同
  • 中文包:插件安装,注意版本
  • Gradle:Gradle是一个构建工具,它是用来帮助我们构建app的,构建包括编译、打包等过程。我们可以为Gradle指定构建规则,然后它就会根据我们的“命令”自动为我们构建app。我的理解是跟cmake差不多。推荐文章:十分钟理解Gradle
    • Groovy
    • Kotlin
  • 下载解压了NDK之后,添加系统环境变量,powershell可以找到ndk-build,但是在Android Studio中找不到,需要在项目中再下载一遍,我的理解是单独在官网下载后直接添加环境变量应该就可以了,不应该再使用SDK下载NDK。在local.properties文件中可以配置ndk.dir的路径
  • 安卓项目是.apk,安卓包是.aar
  • make之后的项目默认目录在:[项目名称]\app\build\outputs\下面,我这里还多了一个debug目录,里面就有一个.apk文件
  • make之后就可以得到apk了,run这个操作只是在模拟硬件或者真实硬件中运行
  • not executable: 64-bit ELF file:这通常是因为此时的可执行文件不是arm平台(指令集不同)的,解决方法有2种:
    • 使用Android Studio编译出安卓平台的文件
    • 在本编译平台交叉编译
  • aarjar的区别:JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件; Android库项目的二进制归档文件,包含所有资源,class以及res资源文件全部包含
  • ANDROID_HOMEANDROID_NDK的路径:可能一个是指sdk,一个是指ndk,sdk的话可能是sdkmanager的路径(不确定,好像不是Android Studio安装包的路径,是一个AppData下面的路径,例如:C:/Users/XXX/AppData/Local/Android/Sdk/tools/bin)

冷知识

  • 可以打开的最长字符串为512M(以json文件为例):
    这是 V8 的限制。我确认 64 位平台上字符串中 UTF16 代码点的最大数量已从-((-1) << 30 + 1)= 2147483648 = 2048M变为((1 << 29) - 24)= 536870888 = 512M(这也是 Chrome 中当前浏览器的限制)

BUG

  • C/C++ 中的分段错误 / Segmentation Fault in C/C++

概念

  • opencl:异构平台编写程序的框架
  • opengl:用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)
  • openVX:瞄准了计算机视觉及相关应用场景中的嵌入式系统与实时计算程序部分
  • openVG、openXR
  • Vulkan:Vulkan是一个低开销、跨平台的二维、三维图形与计算的应用程序接口(API),科纳斯最先把Vulkan API称为“次世代OpenGL行动”(next generation OpenGL initiative)或“glNext”
  • flatbuffers:高效的跨平台序列化库
  • arm64-v8a 和 armeabi-v7a:总之不管有多少版本,可以简单认为:v7a是32位cpu适用,而v8a是64位cpu适用

CMake

  • find_package的用法
  • Failed to detect a default CUDA architecture.,how do I set the Cuda architecture to 86:寻找nvcc的位置可以用:which nvcc
  • 一个很好的博客:CMake 保姆级教程(上);**真的特别好!**继续推荐另一篇:CMake 保姆级教程(下)
  • 动态库,静态库,在CMakeLists中的链接方式不一样

PyTorch

  • 如果使用conda,修改了下载源进行下载的话,不推荐使用官网的命令,命令中-c pytorch表示是从pytorch的官网通道下载,即指定通道失效了

你可能感兴趣的:(其他,git,android,linux,vscode,c++,pytorch,python)