Sophon SDK å¼€å‘ Sophon SDK Sophon SDKæ˜¯ç®—èƒ½ç§‘æŠ€åŸºäºŽå…¶è‡ªä¸»ç ”å‘çš„ AI 芯片所定制的深度å¦ä¹ SDK,涵盖 了神ç»ç½‘络推ç†é˜¶æ®µæ‰€éœ€çš„æ¨¡åž‹ä¼˜åŒ–ã€é«˜æ•ˆè¿è¡Œæ”¯æŒç‰èƒ½åŠ›ï¼Œä¸ºæ·±åº¦å¦ä¹ 应用开 å‘和部署æä¾›æ˜“用ã€é«˜æ•ˆçš„å…¨æ ˆå¼è§£å†³æ–¹æ¡ˆã€‚ Sophon SDK既兼容第三代BM1684芯片,也支æŒç¬¬å››ä»£BM1684X芯片。 Sophon SDK åŒ…ç»„æˆ Sophon SDK 包括基础工具包与高阶工具包。 基础工具包 包括: tpu-nntc 负责对第三方深度å¦ä¹ 框架下è®ç»ƒå¾—到的神ç»ç½‘络模型进行离线编译 å’Œä¼˜åŒ–ï¼Œç”Ÿæˆæœ€ç»ˆè¿è¡Œæ—¶éœ€è¦çš„BModelã€‚ç›®å‰æ”¯æŒCaffeã€Darknetã€MXNet〠ONNXã€PyTorchã€PaddlePaddleã€TensorFlowç‰ã€‚ libsophon æä¾›BMCVã€BMRuntimeã€BMLibç‰åº“,用æ¥é©±åЍVPPã€TPUç‰ç¡¬ä»¶ï¼Œå®Œæˆ 图åƒå¤„ç†ã€å¼ é‡è¿ç®—ã€æ¨¡åž‹æŽ¨ç†ç‰æ“作,供用户进行深度å¦ä¹ 应用开å‘。 sophon-mw å°è£…了BM-OpenCVã€BM-FFmpegç‰åº“,用æ¥é©±åЍVPUã€JPUç‰ç¡¬ä»¶ï¼Œæ”¯æŒ RTSPæµã€GB28181æµçš„è§£æžï¼Œè§†é¢‘图åƒç¼–è§£ç åŠ é€Ÿç‰ï¼Œä¾›ç”¨æˆ·è¿›è¡Œæ·±åº¦å¦ä¹ 应用 å¼€å‘。 sophon-sail æä¾›äº†æ”¯æŒPython/C++的高级接å£ï¼Œæ˜¯å¯¹BMRuntimeã€BMCV〠BMDecoderã€BMLibç‰åº•层库接å£çš„å°è£…,供用户进行深度å¦ä¹ 应用开å‘。 高阶工具包 包括: tpu-mlir 为TPU编译器工程æä¾›ä¸€å¥—完整的工具链,å¯ä»¥å°†ä¸åŒæ¡†æž¶ä¸‹é¢„è®ç»ƒçš„ 神ç»ç½‘络,转化为å¯ä»¥åœ¨ç®—能TPU上高效è¿è¡Œçš„二进制文件BModel。目å‰ç›´æŽ¥æ”¯ æŒçš„æ¡†æž¶åŒ…括tfliteã€onnxå’ŒCaffe。 tpu-perf ä¸ºæ¨¡åž‹æ€§èƒ½å’Œç²¾åº¦éªŒè¯æä¾›äº†ä¸€å¥—å®Œæ•´å·¥å…·åŒ…ã€‚ tpu-kernel æ˜¯èŠ¯ç‰‡åº•å±‚å¼€å‘æŽ¥å£ï¼Œæ—¢å¯ä»¥è°ƒç”¨ä¸“用指令实现深度å¦ä¹ 业务逻辑 çš„åŠ é€Ÿï¼Œåˆå¯ä»¥è°ƒç”¨é€šç”¨æŒ‡ä»¤å®žçŽ°å®¢åˆ¶çš„å„ç§ç®—æ³•åŠ é€Ÿã€‚ Sophon SDK 目录 Sophon SDK æä¾›äº†å一个文件夹模å—,具体如下表所示: 注:sophon-sail 的安装包å¯ä»Ž 下载ä¸å¿ƒ 获å–。 Sophon SDK 解压åŽçš„目录 解压åŽçš„ SDK 文件结构如下: 1SophonSDK 2 3├── libsophon_<date>_<hash> 4│  ├── BMCV_Technical_Reference_Manual.pdf 5│  ├── BMCVå¼€å‘å‚考手册.pdf 6│  ├── BMLib_Technical_Reference_Manual.pdf 7│  ├── BMLIBå¼€å‘å‚考手册.pdf 8│  ├── BMRuntime Technical Reference Manual.pdf 9│  ├── BMRUNTIMEå¼€å‘å‚考手册.pdf 10│  ├── libsophon_<x.y.z>_aarch64.tar.gz #arm64机器,其他LINUX系统对应的libsophon安装包 11│  ├── libsophon_<x.y.z>_x86_64.tar.gz #x86_64机器,其他LINUX系统对应的libsophon安装包 12│  ├── libsophon_dockerfile 13│  ├── libsophon.MD5 14│  ├── LIBSOPHON_User_Guide.pdf 15│  ├── LIBSOPHON使用手册.pdf 16│  ├── release_version.txt 17│  ├── sophon-driver_<x.y.z>_amd64.deb #x86_64机器,Debian/Ubuntu系统对应的PCIeå¡é©±åŠ¨å®‰è£…æ–‡ä»¶ 18│  ├── sophon-driver_<x.y.z>_arm64.deb #arm64机器,Debian/Ubuntu系统对应的PCIeå¡é©±åŠ¨å®‰è£…æ–‡ä»¶ 19│  ├── sophon-libsophon_<x.y.z>_amd64.deb #x86_64机器,Debian/Ubuntu系统对应的libsophonè¿è¡Œæ—¶çŽ¯å¢ƒå®‰è£…æ–‡ä»¶ 20│  ├── sophon-libsophon_<x.y.z>_arm64.deb #arm64机器,Debian/Ubuntu系统对应的libsophonè¿è¡Œæ—¶çŽ¯å¢ƒå®‰è£…æ–‡ä»¶ 21│  ├── sophon-libsophon-dev_<x.y.z>_amd64.deb #x86_64机器,Debian/Ubuntu系统对应的libsophonå¼€å‘环境安装文件 22│  └── sophon-libsophon-dev_<x.y.z>_arm64.deb #arm64机器,Debian/Ubuntu系统对应的libsophonå¼€å‘环境安装文件 23├── sophon-demo_<date>_<hash> 24│  ├── release_version.txt 25│  ├── sophon-demo.MD5 26│  └── sophon-demo_v<x.y.z>_b909566_20221027.tar.gz #é’ˆå¯¹å•æ¨¡åž‹æˆ–场景的综åˆä¾‹ç¨‹ 27├── sophon-img_<date>_<hash> 28│  ├── bsp-debs 29│  ├── bsp_update.tgz 30│  ├── libsophon_soc_<x.y.z>_aarch64.tar.gz #交å‰ç¼–译所需文件 31│  ├── release_version.txt 32│  ├── sdcard.tgz #SoCå¡åˆ·åŒ… 33│  ├── SOPHON_BSP_Technical_Reference_Manual.pdf 34│  ├── SOPHON BSPå¼€å‘å‚考手册.pdf 35│  ├── sophon-img.MD5 36│  ├── sophon-soc-libsophon_<x.y.z>_arm64.deb #SoCå¹³å°å¯¹åº”çš„libsophon安装文件 37│  ├── sophon-soc-libsophon-dev_<x.y.z>_arm64.deb #SoCå¹³å°å¯¹åº”çš„libsophon安装文件 38│  ├── system.tgz 39│  └── tftp.tgz 40├── sophon-mw_<date>_<hash> 41│  ├── Multimedia FAQ.pdf 42│  ├── Multimedia Technical Reference Manual.pdf 43│  ├── Multimedia User Guide.pdf 44│  ├── MULTIMEDIA使用手册.pdf 45│  ├── MULTIMEDIA常è§é—®é¢˜æ‰‹å†Œ.pdf 46│  ├── MULTIMEDIAå¼€å‘å‚考手册.pdf 47│  ├── release_version.txt 48│  ├── sophon-mw_<x.y.z>_aarch64.tar.gz #arm64机器,其他LINUX系统对应的sophon-mw安装包 49│  ├── sophon-mw_<x.y.z>_x86_64.tar.gz #x86_64机器,其他LINUX系统对应的sophon-mw安装包 50│  ├── sophon-mw.MD5 51│  ├── sophon-mw-soc_<x.y.z>_aarch64.tar.gz 52│  ├── sophon-mw-soc-sophon-ffmpeg_<x.y.z>_arm64.deb #SoCå¹³å°ï¼Œffmpegè¿è¡Œæ—¶çŽ¯å¢ƒå®‰è£…æ–‡ä»¶ 53│  ├── sophon-mw-soc-sophon-ffmpeg-dev_<x.y.z>_arm64.deb #SoCå¹³å°ï¼Œffmpegå¼€å‘环境安装文件 54│  ├── sophon-mw-soc-sophon-opencv_<x.y.z>_arm64.deb #SoCå¹³å°ï¼Œopencvè¿è¡Œæ—¶çŽ¯å¢ƒå®‰è£…æ–‡ä»¶ 55│  ├── sophon-mw-soc-sophon-opencv-dev_<x.y.z>_arm64.deb #SoCå¹³å°ï¼Œopencvå¼€å‘环境安装文件 56│  ├── sophon-mw-soc-sophon-sample_<x.y.z>_arm64.deb #SoCå¹³å°ï¼Œå¤šåª’体程åºç¤ºä¾‹æ–‡ä»¶ 57│  ├── sophon-mw-sophon-ffmpeg_<x.y.z>_amd64.deb #x86_64机器,Debian/Ubuntu系统对应的ffmpegè¿è¡Œæ—¶çŽ¯å¢ƒå®‰è£…æ–‡ä»¶ 58│  ├── sophon-mw-sophon-ffmpeg_<x.y.z>_arm64.deb #arm64机器,Debian/Ubuntu系统对应的ffmpegè¿è¡Œæ—¶çŽ¯å¢ƒå®‰è£…æ–‡ä»¶ 59│  ├── sophon-mw-sophon-ffmpeg-dev_<x.y.z>_amd64.deb #x86_64机器,Debian/Ubuntu系统对应的ffmpegå¼€å‘环境安装文件 60│  ├── sophon-mw-sophon-ffmpeg-dev_<x.y.z>_arm64.deb #arm64机器,Debian/Ubuntu系统对应的ffmpegå¼€å‘环境安装文件 61│  ├── sophon-mw-sophon-opencv_<x.y.z>_amd64.deb #x86_64机器,Debian/Ubuntu系统对应的opencvè¿è¡Œæ—¶çŽ¯å¢ƒå®‰è£…æ–‡ä»¶ 62│  ├── sophon-mw-sophon-opencv_<x.y.z>_arm64.deb #arm64机器,Debian/Ubuntu系统对应的opencvè¿è¡Œæ—¶çŽ¯å¢ƒå®‰è£…æ–‡ä»¶ 63│  ├── sophon-mw-sophon-opencv-abi0_<x.y.z>_amd64.deb #x86_64机器,CenterOS系统对应的opencvè¿è¡Œæ—¶çŽ¯å¢ƒå®‰è£…æ–‡ä»¶ 64│  ├── sophon-mw-sophon-opencv-abi0_<x.y.z>_arm64.deb #arm64机器,CenterOS系统对应的opencvè¿è¡Œæ—¶çŽ¯å¢ƒå®‰è£…æ–‡ä»¶ 65│  ├── sophon-mw-sophon-opencv-abi0-dev_<x.y.z>_amd64.deb #x86_64机器,CenterOS系统对应的opencvå¼€å‘环境安装文件 66│  ├── sophon-mw-sophon-opencv-abi0-dev_<x.y.z>_arm64.deb #arm64机器,CenterOS系统对应的opencvå¼€å‘环境安装文件 67│  ├── sophon-mw-sophon-opencv-dev_<x.y.z>_amd64.deb #x86_64机器,Debian/Ubuntu系统对应的opencvå¼€å‘环境安装文件 68│  ├── sophon-mw-sophon-opencv-dev_<x.y.z>_arm64.deb #arm64机器,Debian/Ubuntu系统对应的opencvå¼€å‘环境安装文件 69│  ├── sophon-mw-sophon-sample_<x.y.z>_amd64.deb #x86_64机器,多媒体程åºç¤ºä¾‹æ–‡ä»¶ 70│  └── sophon-mw-sophon-sample_<x.y.z>_arm64.deb #arm64机器,多媒体程åºç¤ºä¾‹æ–‡ä»¶ 71├── sophon-pipeline_<date>_<hash> 72│  ├── release_version.txt 73│  ├── sophon-pipeline.MD5 74│  └── sophon-pipeline_v<x.y.z>_586366b_20221027.tar.gz #基于pipelineçš„é«˜æ€§èƒ½æŽ¨ç†æ¡†æž¶ 75├── sophon-rpc_<date>_<hash> 76│  ├── release_version.txt 77│  ├── sophon-rpc_<x.y.z>_amd64.deb #x86_64机器,Debian/Ubuntu系统对应的sophon-rpc安装文件 78│  ├── sophon-rpc_<x.y.z>_arm64.deb #arm64机器,Debian/Ubuntu系统对应的sophon-rpc安装文件 79│  ├── sophon-rpc_<x.y.z>.tar.gz #其他系统对应的sophon-rpc安装包 80│  ├── sophon-rpc.MD5 81│  └── sophon-rpc使用指å—.pdf 82├── sophon-sail_<date>_<hash> 83│  ├── release_version.txt 84│  ├── Sophon_Inference_zh.pdf 85│  ├── sophon-sail_<x.y.z>.tar.gz #å°è£…了BMLibã€BMDecoderã€BMCVã€BMRuntime的高级接å£åº“ 86│  └── sophon-sail.MD5 87├── Sophon SDK文件清å•.docx 88├── tpu-kernel_<date>_<hash> 89│  ├── release_version.txt 90│  ├── tpu-kernel-1684x_v<x.y.z>-0d0e513e-221027.tar.gz #自定义算åå¼€å‘工具 91│  └── tpu-kernel.MD5 92├── tpu-mlir_<date>_<hash> 93│  ├── release_version.txt 94│  ├── tpu-mlir.MD5 95│  └── tpu-mlir_v<x.y.z>-<hash>-<date>.tar.gz #编译器工具链 96├── tpu-nntc_<date>_<hash> 97│  ├── release_version.txt 98│  ├── tpu-nntc.MD5 99│  └── tpu-nntc_v<x.y.z>-<hash>-<date>.tar.gz #模型编译é‡åŒ–工具链 100└── tpu-perf_v<x.y.z> 101 ├── md5sum.txt 102 ├── tpu_perf-<x.y.z>-py3-none-manylinux2014_aarch64.whl 103 ├── tpu_perf-<x.y.z>-py3-none-manylinux2014_x86_64.whl 104 └── tpu-perf-<x.y.z>.tar.gz #模型的性能分æžå’Œç²¾åº¦éªŒè¯å·¥å…· SDKä¸»è¦æ¨¡å— 硬件驱动åŠè¿è¡Œæ—¶åº“ LIBSOPHON : 包å«BMCVã€BMRuntimeã€BMLibç‰åº“,用æ¥é©± 动VPPã€TPUç‰ç¡¬ä»¶ï¼Œå®Œæˆå›¾åƒå¤„ç†ã€å¼ é‡è¿ç®—ã€æ¨¡åž‹æŽ¨ç†ç‰æ“作。 多媒体库 SOPHON-MW : 支æŒSophonè®¾å¤‡ç¡¬ä»¶åŠ é€Ÿçš„BM-OpenCVå’ŒBM-FFmpeg,支 æŒRTSPæµã€GB28181æµçš„è§£æžï¼Œè§†é¢‘åŠå›¾ç‰‡çš„ç¼–è§£ç 。 模型编译é‡åŒ–工具链 TPU-NNTC : 支æŒCaffeã€Tensorflowã€Pytorchã€MXNet〠Darknetã€Paddle Paddleã€ONNXç‰æ¡†æž¶æ¨¡åž‹çš„æ¨¡åž‹è½¬æ¢ï¼›æ”¯æŒæ¨¡åž‹é‡åŒ–:原始模 åž‹ -> FP32 UModel -> INT8 UModel -> INT8 BModel, åŒæ—¶æä¾› auto-cali 自动é‡åŒ–工具。 å¼ é‡è¿ç®—åŠå›¾åƒå¤„ç†åº“ BMCV : 色彩空间转æ¢ã€å°ºåº¦å˜æ¢ã€ä»¿å°„å˜æ¢ã€æŠ•å°„å˜ æ¢ã€çº¿æ€§å˜æ¢ã€ç”»æ¡†ã€JPEGç¼–ç ã€BASE64ç¼–ç ã€NMSã€æŽ’åºã€ç‰¹å¾åŒ¹é…。 è®¾å¤‡ç®¡ç† BMLib : 基础接å£ï¼šè®¾å¤‡Handle的管ç†ï¼Œå†…å˜ç®¡ç†ã€æ•°æ®æ¬è¿ã€API çš„å‘é€å’ŒåŒæ¥ã€A53ä½¿èƒ½ç‰ ç®—ä¸°AIåŠ é€Ÿåº“ SAIL : 支æŒPython/C++的高级接å£ï¼Œæ˜¯å¯¹BMRuntimeã€BMCV〠BMDecoderç‰åº•层库接å£çš„å°è£…。 自定义算å高级编程库 BMLang:基于C++çš„é¢å‘Sophon TPU的高级编程库,与硬 ä»¶ä¿¡æ¯è§£è€¦ï¼Œæ— éœ€äº†è§£ç¡¬ä»¶æž¶æž„ï¼Œä½¿ç”¨å¼ é‡æ•°æ®ï¼ˆbmlang::Tensor)和计算æ“作 (bmlang::Operator)编写代ç ,最åŽä½¿ç”¨bmlang::compile或 bmlang::compile_with_checkæ¥ç”ŸæˆTPUå¯ä»¥è¿è¡Œçš„BModelï¼›æ¤å¤–也支æŒä½¿ç”¨ BM168Xä¸çš„arm cpuæ¥å®žçްTPUå°šä¸æ”¯æŒçš„ç®—å。 ç®—æ³•å¹¶è¡ŒåŠ é€Ÿç¼–ç¨‹åº“ TPUKernel:基于SophonèŠ¯ç‰‡åº•å±‚åŽŸåæ“ä½œæŽ¥å£çš„底层编程 接å£ï¼Œéœ€è¦ç†Ÿæ‚‰ç¡¬ä»¶æž¶æž„和指令集。 模型性能和精度验è¯å·¥å…· TPUPerf : å¯å¯¹æ¨¡åž‹è¿›è¡Œæ€§èƒ½åˆ†æžå’Œç²¾åº¦éªŒè¯ã€‚ 详细资料 èŽ·å– SDK(v23.05.01 版本) 安装 SDK(v23.05.01 版本) 更多资料的,请å‚考: https://developer.sophgo.com/site/index/document/all/all.html