cuda

Windows系统下配置OpenCV_DNN模块使用CUDA加速(Windows10、VS2017、CUDA10.1、cuDNN7.6.5、OpenCV4.2.0)

喜欢而已 提交于 2020-08-14 05:41:35
OpenCV DNN模块可加载深度学习模型用于目标检测等任务,OpenCV4.2.0之后支持模型推理使用CUDA加速,但是需要手动将CUDA模块编译进OpenCV. 本文记录了编译的全部过程,最终可用于c++/python下的opencv_dnn模块加速。 目录 step1 运行环境和前期准备 step2 编译OpenCV DNN模块(WITH CUDA) step 3 测试 (1)c++ (2)python step1 运行环境和前期准备 1、Windows 10 系统 2、Visual Studio 2017 专业版( 先安装 ) 3、CUDA 10.1、cuDNN 7.6.5( 后安装 ) cuda下载地址: https://developer.nvidia.com/cuda-10.1-download-archive-base cudnn下载地址(需要注册登录): https://developer.nvidia.com/cudnn 将解压后的cuDNN压缩包中的bin、include、lib文件夹复制到CUDA安装路径下: 4、OpenCV 4.2.0、OpenCV Contrib 4.2.0 contrib下载地址: https://github.com/opencv/opencv_contrib/releases 5、opencv-python 4.2系列

Cuda 10.2在CentOS 7.8下编译ffmpeg 4.2.4

我只是一个虾纸丫 提交于 2020-08-14 05:09:49
安装Cuda 10.2的toolkit和对应的NVIDIA显卡驱动, 后安装nvidea codec的头文件: https://github.com/FFmpeg/nv-codec-headers/releases 下载后解压: tar xf nv-codec-headers-n10.0.26.0.tar.gz cd nv-codec-headers-n10.0.26.0 make make install 在CentOS 7.8下, 下载ffmpeg版本: http://ffmpeg.org/download.html#releases 下载ffmpeg4.2.4到CentOS7.8上: http://ffmpeg.org/releases/ffmpeg-4.2.4.tar.xz tar xf ffmpeg-4.2.4.tar.xz cd ffmpeg-4.2.4 编译参考: https://developer.nvidia.com/ffmpeg PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure --enable-cuda-nvcc --enable-cuvid --enable-nvenc --enable-nonfree --enable-libnpp --extra-cflags=-I/usr/local/cuda

学校服务器的使用方法

百般思念 提交于 2020-08-14 01:43:41
在noVNC中,直接打开vs code 打开vs code,打开终端会显示 此时,点击右下角的 ,默认是第二个,现在需要选择第四个 点击 加号,创建新终端, 会显示 base环境就是我们设计好的环境了。目前还不能创建第二个环境,很奇怪。 现在你可以在终端里运行代码,也可以直接点击右上角的三角运行。因为刚才创建新终端这一步已经切换到base环境了,这一步不可缺少! 下面讲在jupyter notebook中怎么激活环境。 jupyter notebook默认是在tf2.1的环境,还是cpu的,所以还是得激活我们的base环境。 创建新终端,然后输入 source /workspace/anaconda/bin/activate,回车 就看到 OK了,可以在终端上运行代码了。 那么怎么在notebook里运行呢? 可以看到,这里的环境还是默认的环境。 但是我不会弄了!就算输入!/workspace/anaconda/bin/activate也没用! 既然notebook不适合跑大型网络,所以还是用它跑小型网络吧,也不用多少时间,CPU能胜任的! 好了,最后一个问题,怎么用终端跑代码? 举个例子,跑CNN.py—— 指定GPU跑程序: 首先确定GPU的使用情况, 然后输入CUDA_VISIBLE_DEVICES=1 python your_file.py。其中 your_file

Pytorch深度学习实战教程(二):UNet语义分割网络

时光怂恿深爱的人放手 提交于 2020-08-13 23:06:12
本文 GitHub Jack-Cherish/PythonPark 已收录,有技术干货文章,整理的学习资料,一线大厂面试经验分享等,欢迎 Star 和 完善。 一、前言 本文属于Pytorch深度学习语义分割系列教程。 该系列文章的内容有: Pytorch的基本使用 语义分割算法讲解 如果不了解语义分割原理以及开发环境的搭建,请看该系列教程的上一篇文章《 Pytorch深度学习实战教程(一):语义分割基础与环境搭建 》。 本文的开发环境采用上一篇文章搭建好的Windows环境,环境情况如下: 开发环境:Windows 开发语言:Python3.7.4 框架版本:Pytorch1.3.0 CUDA:10.2 cuDNN:7.6.0 本文主要讲解 UNet网络结构 ,以及 相应代码的代码编写 。 PS:文中出现的所有代码,均可在我的github上下载,欢迎Follow、Star: 点击查看 二、UNet网络结构 在语义分割领域,基于深度学习的语义分割算法开山之作是FCN(Fully Convolutional Networks for Semantic Segmentation),而UNet是遵循FCN的原理,并进行了相应的改进,使其适应小样本的简单分割问题。 UNet论文地址: 点击查看 研究一个深度学习算法,可以先看网络结构,看懂网络结构后,再Loss计算方法、训练方法等

【pytorch-ssd目标检测】可视化检测结果

﹥>﹥吖頭↗ 提交于 2020-08-13 16:08:41
制作类似pascal voc格式的目标检测数据集: https://www.cnblogs.com/xiximayou/p/12546061.html 训练自己创建的数据集: https://www.cnblogs.com/xiximayou/p/12546556.html 验证自己创建的数据集: https://www.cnblogs.com/xiximayou/p/12550471.html 测试自己创建的数据集: https://www.cnblogs.com/xiximayou/p/12550566.html 还是以在谷歌colab上为例: cd /content/drive/My Drive/pytorch_ssd 导入相应的包: import os import sys module_path = os.path.abspath(os.path.join( ' .. ' )) if module_path not in sys.path: sys.path.append(module_path) import torch import torch.nn as nn import torch.backends.cudnn as cudnn from torch.autograd import Variable import numpy as np import cv2

使用python和vb控制cst进行自动化仿真之(一):环境配置

一世执手 提交于 2020-08-13 12:59:09
使用python和vb控制cst进行自动化仿真之(一):环境配置 做微波的童鞋会经常用到cst进行仿真。我有个朋友最近一个课题需要使用cst仿真大量数据,这些数据对应的一部分结构参数要求随机生成,这样就没办法使用扫参。cst自带了vb(visual basic)编程环境,可以使用vb脚本编程控制cst实现自动仿真。得到这些数据后,会被用到pytorch中作为神经网络的训练数据。 cst2020 提供了python编程接口,也提供了在pyhon环境中执行vb脚本的接口,如此一来,数据获取和训练都可以在pyhon中进行。不仅非常方便,而且将来可以实现模型参数的自动优化。(cst2020破解版安装包获取以及破解教程可以参考这个链接: https://www.bilibili.com/read/cv4982729/ ) 1.cst参考文档 每个版本的cst都带了非常非常全的参考文档,我们想知道的都在里面。打开cst自带的help文档,找到 automation and scripting,就可以看到关于python控制接口的详细介绍。 2.创建 python3.6虚拟环境 cst2020的python包是基于python3.6的,为了能够在pycharm中同时使用cst的接口和完整的python接口,需要先使用conda创建一个python3.6的虚拟环境(请事先安装好conda)。 打开

InternalError: cudaGetDevice() failed. Status: CUDA driver version is insufficient for CUDA runti...

为君一笑 提交于 2020-08-13 02:43:47
安装TensorFlow 2.0.0以后,运行出现了下面的错误: tensorflow.python.framework.errors_impl.InternalError: cudaGetDevice() failed. Status: CUDA driver version is insufficient for CUDA runtime version 这是由于CUDA驱动版本不满足CUDA运行版本造成的,之前为了安装TensorFlow 2.0.0,升级了CUDA运行版本到CUDA 10.0,但是CUDA驱动版本并没有升级,从而造成了这个错误.CUDA驱动版本和CUDA运行版本应该满足下面这张表的要求(https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html): 运行nvidia-smi后,发现CUDA驱动版本是385.54,不满足上面的要求. 于是直接用Windows8.1的设备管理器,用自动搜索更新的驱动程序软件升级CUDA驱动版本: 升级结束以后,再运行nvidia-smi,显示CUDA驱动版本已经升级到了416.34,此时运行TensorFlow 2.0.0,就不会出现上面的错误了. 来源: oschina 链接: https://my.oschina.net/u/4370809/blog

NVIDIA Tesla GPU系列P4、T4、P40以及V100参数性能对比

强颜欢笑 提交于 2020-08-13 02:09:01
NVIDIA Tesla系列GPU适用于高性能计算(HPC)、深度学习等超大规模数据计算,Tesla系列GPU能够处理解析PB级的数据,速度比使用传统CPU快几个数量级,NVIDIA Tesla GPU系列P4、T4、P40以及V100是Tesla GPU系列的明星产品,云服务器吧分享NVIDIA Tesla GPU系列P4、T4、P40以及V100参数性能对比: NVIDIA Tesla GPU系列P4、T4、P40以及V100 NVIDIA Tesla系列GPUP4、T4、P40以及V100性能规格参数对比表, 阿里云GPU云服务器 提供的实例GN4(Nvidia M40)、GN5(Nvidia P100)、GN5i(Nvidia P4)及GN6(Nvidia V100),也会基于NVIDIA Tesla GPU系列。 云服务器吧 Tesla T4:世界领先的推理加速器 Tesla V100:通用数据中心 GPU 适用于超高效、外扩型服务器的 Tesla P4 适用于推理吞吐量服务器的 Tesla P40 单精度性能 (FP32) 8.1 TFLOPS 14 TFLOPS (PCIe) 15.7 teraflops (SXM2) 5.5 TFLOPS 12 TFLOPS 半精度性能 (FP16) 65 TFLOPS 112 TFLOPS (PCIe)125 TFLOPS

Ubuntu18.04安装cuda8.0

陌路散爱 提交于 2020-08-12 18:06:29
检查NVIDIA的驱动版本与要安装的CUDA版本,有一个对应表格,只要驱动版本高于CUDA版本就可以安装, 具体的安装过程,参考了一位大佬的博客: https://blog.csdn.net/qq_23996885/article/details/90205937 最后利用nvcc -V命令查询安装的版本号,显示则安装成功。(也可以去跑一个cuda自带的sample) 来源: oschina 链接: https://my.oschina.net/u/4372568/blog/4488545

CUDA编程之快速入门

廉价感情. 提交于 2020-08-12 14:35:27
CUDA(Compute Unified Device Architecture)的中文全称为计算统一设备架构。做图像视觉领域的同学多多少少都会接触到CUDA,毕竟要做性能速度优化,CUDA是个很重要的工具,CUDA是做视觉的同学难以绕过的一个坑,必须踩一踩才踏实。CUDA编程真的是入门容易精通难,具有计算机体系结构和C语言编程知识储备的同学上手CUDA编程应该难度不会很大。本文章将通过以下五个方面帮助大家比较全面地了解CUDA编程最重要的知识点,做到快速入门: GPU架构特点 CUDA线程模型 CUDA内存模型 CUDA编程模型 CUDA应用小例子 1. GPU架构特点 首先我们先谈一谈串行计算和并行计算。我们知道,高性能计算的关键利用多核处理器进行并行计算。 当我们求解一个计算机程序任务时,我们很自然的想法就是将该任务分解成一系列小任务,把这些小任务一一完成。在串行计算时,我们的想法就是让我们的处理器每次处理一个计算任务,处理完一个计算任务后再计算下一个任务,直到所有小任务都完成了,那么这个大的程序任务也就完成了。如下图所示,就是我们怎么用串行编程思想求解问题的步骤。 但是串行计算的缺点非常明显,如果我们拥有多核处理器,我们可以利用多核处理器同时处理多个任务时,而且这些小任务并没有关联关系(不需要相互依赖,比如我的计算任务不需要用到你的计算结果),那我们为什么还要使用串行编程呢