- 博客(29)
- 资源 (9)
- 收藏
- 关注
原创 docker 容器使用宿主机显卡资源
环境Centos7.7,docker 19.03,显卡驱动:450.57docker 19.03上,不再需要nvidia-docker2 工具包,因为nvidia gpu已经能够天然在docker 运行时支持。如果已经使用了nvidia-docker2工具包,需要做特殊处理,网址:https://github.com/NVIDIA/nvidia-docker/blob/master/README.md#quickstart配置生成脚本文件,内容如下:distribution=$
2020-08-12 11:52:37 1773
原创 centos 实现docker 容器和宿主机同网段主机互相连通
需求有两台实体机,一台是windows10,另一台是centos7.7。centos7.7这台作为docker 容器的宿主机,该机器下的容器需要和windows10 实现网络互通。实现找了很多的方法,大多数都是说在win10和centos上加上路由就可以实现,尝试下来加路由只能实现win10与宿主机的docker 虚拟网卡互通,无法实现win10与docker内的容器互通。最终通过网络桥接重定向的方法实现。基本思路如下:1、删除宿主机物理网卡IP,MASK,GATEWAY等配置2
2020-07-18 13:41:26 1897
原创 Docker基本概念
Docker EngineDocker Engine是一个client-server 应用程序,它主要包含以下几块:一个长时间运行的server,这个server进程叫做docker 守护进程(dockerd命令)一些用于与daemon交互或者指令API一个命令行接口(CLI)客户端(docker命令)通过脚本或者直接在CLI输入命令,用户可以和Docker 守护进程交互。守护进程 创建和管理Docker 对象,比如镜像,容器,网络和硬盘卷等。Docker ..
2020-07-08 17:48:22 392
原创 云计算基本概念,公有云,私有云,混合云,
1、云计算主要部署和访问模型包括:1.1、公共云/网络云公共云是最常见的部署模式,其必要的IT基础设施(如基于虚拟化技术的数据中心)由第三方服务供应商建立,任何用户都可以以订阅的方式使用。该云服务模式对用户非常有吸引力,用户能快速的使用计算,存储和应用服务。这种环境下,用户的数据和应用程序部署再服务供应商的云数据中心。1.2、私有云/企业云企业拥有的数据中心和基础设施公共云模型,向内联网用户以及合作伙伴提供服务。1.3、混合云当私有云资源无法满足用户服务质量要求时,可将公共云与私有云
2020-06-13 10:16:06 2638
原创 CUDA 共享内存
GPU设备中的共享内存比全局内存访问效率高,一种借助共享内存的通用办法是,数据分块之后,将一个线程块中需要从全局内存中读取的数据全部读到共享内存中,然后线程块中的所有线程在执行时,只需要读取共享内存即可。共享内存中所谓的共享是对线程块而言,也就是说同一个线程块中的所有线程共享这块内存。为了使得一个wrap中的线程可以在同一个时刻并行访问共享内存,共享存储器被组织成了32个bank,每个bank有4字节。共享内存访问有bank 冲突问题,一个wrap中存在多个线程同时访问同一个bank的数据,则称为b
2020-06-06 15:34:12 1093
原创 Centos /Debian 安装自定义服务
CentOS 7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,即:/usr/lib/systemd/system ,/usr/lib/systemd/user每一个服务以.service结尾,一般会分为3部分:[Unit]、[Service]和[Install],就以nginx为例吧,具体内容如下:1创建service:在/usr/lib/systemd/system下创建nginx.service文件内容如下(看应用.
2020-05-14 16:47:20 981
原创 CENTOS安装对应的内核版本,build-essential
centos 安装对应内核版本的kernel-devel1 查看内核版本 uname -r2 查看目前已有的kernel-develuname -a | rpm -qa kernel\* | sort3 下载对应版本 $ sudo yum install "kernel-devel-uname-r == $(uname -r)"#安装成功会在/usr/src/ke...
2020-04-17 11:00:08 2725
原创 Centos 安装nvidia显卡驱动,nouveau驱动冲突问题,The Nouveau kernel driver is currently in use by your system
安装nvidia 显卡驱动时报nouveau 驱动冲突问题解决:关闭Nouveau:把驱动加入黑名单中: /etc/modprobe.d/blacklist.conf 在后面加入:blacklist nouveau使用 dracut重新建立 initramfs image file :* 备份 the initramfs file$ sudo mv /boot/ini...
2020-04-13 15:13:07 4399
原创 centos 禁用关闭防火墙
centos 禁用关闭防火墙systemctl stop firewalld.service && systemctl disable firewalld.service
2020-04-11 15:42:17 94
原创 centos 网络源
修改/etc/yum.repos.d下的文件将其下的源配置文件改成如下:#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=BaseOS&infra=$infrabaseurl=http://mirror.centos.org/$contentdir/$r...
2020-04-11 11:50:22 144
翻译 [翻译]CUDA-C-Programming-Guide Maximize InstructionThroughput
5.4 最大化指令吞吐量为了达到最大的指令吞吐量,程序应该:最小化使用低吞吐量的计算指令;有以下方法:在不影响结果的情况下以精度换取执行速度,比如使用指令来代替内置函数,用单精度代替双浮点精度,或者将非归一化数据刷新为0. 最小化分支 减少指令的数量,本章节中,吞吐量通过每个SM每个时钟周期进行的运算次数来表示。对于一个warp=32,一条指令对应了32次运算,所有如果一个时钟周期进...
2020-04-08 16:58:42 522
翻译 [翻译]CUDA-C-Programming-Guide Maximize Memory Throughput
5.3 最大化内存带块提高应用程序内存带宽的第一步就是减少与低带宽存储器交换数据。也就是要减少CPU主机与GPU设备之间交换数据,因为这种交换数据的带宽比全局存储器与GPU设备之间交换数据带宽低太多了。当然全局存储器与GPU设备之间带宽也存在限制,这两者之间交换数据的操作也应该尽量减少,一种可行的方法是:最大化使用片内存储器:共享存储器和缓存(L1 缓存和L2 缓存等)。共享存储器...
2020-04-03 17:22:30 155
翻译 [翻译]CUDA_C_Programming_Guide Performance Guidelines Maximize Utilization
5. GPU性能优化建议5.1 性能优化策略概述总体上说,性能优化主要包括以下三个策略:最大化并行度以达到GPU 核的最大利用率。 内存优化以达到最大的内存带宽。 指令集优化以达到最大的指令带宽。对于一个应用程序来讲,哪种优化策略能达到最好的性能取决于该应用程序的性能瓶颈在哪;比如说,对一段性能瓶颈在内存访问的代码进行指令使用方面的优化将不会得到很好的优化效果。所以,在性能优化之...
2020-04-03 11:37:50 306
原创 CUDA设备存储(一)
首先回顾一下Nvidia GPU的硬件结构:上图是Volta GV100的GPU结构全图,这我们只关注存储设备,可以看到所有的SM共享L2 Cache和全局存储器(通常说的显存),另外还有一个常数存储器也是所有SM共享的。再看单个的SM的硬件结构:很明显,每个SM共享L1 Data和共享内存。另外每个CUDA Core拥有自己的寄存器(Register File)。...
2020-04-01 10:50:50 491
原创 如何预期计算cuda kernel代码的性能水平
CGMA(Compute to Global Memory Access)CGMA的定义是在CUDA程序的某一个区域内每次访问全局存储器时,执行浮点运算的次数,通过对某一个区域代码计算CGMA值,大致可以预估出代码的性能水平。假如矩阵乘法中的核心代码:for(int k = 0;k<Width;++k) Pvalue+=d_M[Row*Width+k]*d_N[k*Wi...
2020-03-31 09:10:23 1462
原创 CentOS 设置镜像为本地源
1、先mount mount -o loop /home/CentOS-7-x86_64-Everything-1611.iso /media/CentOS2、修改 source 文件 /etc/yum.repos.d/CentOS-Media.repo Enabled = 13、重命名 CentOS-Base.repo文件,屏...
2020-03-30 13:36:01 225
原创 cuda 线程调度
硬件描述从硬件上看,一块显卡的最小单元是GPU核(或者叫做Stream Processor),所有核心平均分配在多个SM中,而多个SM共同构成整块显卡的核心。比如RTX2070有36个Streaming Multiprocessors,而每个SM有64个CUDA Cores,RTX2070具有36*64=2304个CUDA Cores。软件描述thread,block,grid,war...
2020-03-28 16:56:42 2172
转载 Nvidia GPU架构
第一个直观感受:简单说GPU = 显存 + 计算单元。显存(Global Memory):显存是在GPU板卡上的DRAM,类似于CPU的内存,就是那堆DDR啊,GDDR5啊之类的。特点是容量大(可达16GB),速度慢,CPU和GPU都可以访问。计算单元(Streaming Multiprocessor):执行计算的。每一个SM都有自己的控制单元(Control Unit),寄存器(R...
2020-03-28 15:06:50 2640
原创 面向对象编程的几个原则
面向对象编程时一般都要注意几个原则:1、开闭法则(OCP):设计的类要对修改关闭,对扩展开放。设计一个模块的时候尽量做到在这个模块在不被修改的情况下扩展其功能,也就是说在不改变源代码的情况下,改变这个模块的功能。如何做到开闭法则呢? 解决这个问题的关键在于抽象化。在
2011-07-18 15:15:48 466
原创 C++之引用
引用在C++中是一个比较特殊的概念,有着许多特殊的应用。一、简介及定义引用就是某个变量的别名,对引用的使用就是对该变量的使用(需要深刻理解)声明:类型名& 变量名 = 变量名;//引用在声明时就要初始化,并且在之后都不能再引用其他变量。【例1】int a; int& ra = a
2011-07-07 16:31:48 345
原创 C++之函数参数传递
在C++语言中,函数的参数传递有三种方式:值传递,指针传递和引用传递。这三种传递方式各部相同,各有各得特点。一、值传递采用值传递方式时,在内存的堆栈段中为被调函数的形参列表分配空间,然后将主调函数的实参列表赋值给形参。因此,这种方式的形参和实参的存储地址是不同的。只是在调用的时候
2011-07-07 15:40:48 444
原创 eclipse ,cdt setup wxWidgets
1、安装eclipse cdt和mingw eclipse 只是个框架,实际编译还是mingw来执行的。现在可以下载eclipse cdt的绿色包,里面已经包含了mingw,所以只需要下载这个绿色包即可。2、编译wxWidgets库This part is more intere
2011-07-07 11:15:26 657
原创 itk库依赖关系
这个与前面一篇的vtk类似的IF("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" GREATER 2.4)# Information for CMake 2.6 and above.SET("ITKAlgorithms_LIB_DE
2011-07-07 11:14:27 1216
原创 vtk库的依赖关系
找了几天了,终于找到了这个库的依赖关系了。原来编译后的文档就有。好像添加到eclipse cdt里面的时候顺序要反一下,依赖库要写在后面。IF("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" GREATER 2.4)# Inform
2011-07-07 11:13:37 1367
原创 codeblocks中Error:new types may not be defined in a return type错误
因为第一次使用codeblocks,第一次碰到这样的错误,一头雾水,一开始还以为是文件的名字和类名不同的原因。后来还是百度给了我答案啊。。出现这种错误是因为类在定以后,{ ....}后面少了分号。。
2011-07-07 11:12:18 500
原创 Codeblocks的中文支持
这里以Code::Blocks 10.5版本为蓝本进行说明。首先,请在Code::Blocks里面输入标准的一个C程序:view plaincopy to clipboardprint?#include #include #include #include #include in
2011-07-07 11:11:12 1310
原创 dcmtk和wxWidgets混合编程
环境:IDE:vc6.0 OS:xp一、库编译、安装a、wx库的编译、安装可以参考上一篇中所写。就没有问题的。b、dcmtk库的编译、安装1、首先当然是要下载库源文件了,这些在官方网站上都可以下,下载源文件和支持库即可。解压后,就会发现有个CMakelist.txt文件,一看就知道要用cmake生成工程文件了。所以,这所有的前提是你下载了cmake,并且会用cmake因为w
2010-03-31 23:14:00 777
原创 直接使用ODBC API操作数据库前提
使用ODBC API之前要用到的头文件和LIB库 #include "sql.h" // This is the the main include for ODBC Core functions. #include "sqlext.h" // This is the include for applications using the Microsoft SQL Extensions #in
2010-03-31 23:09:00 548
转载 vc6.0下安装wxWidgets
和 GTK、QT、SWT、SWING 一样,wxWidgets 也是一种开源跨平台的 GUI 框架。因 wxWidgets 和 MFC 有些渊源,有些亲近,故要体验一番 wxWidgets。现在最新版是 2.8.7。wxWidgets 程序还可运行于 Windows CE、Palm OS。不但包括 GUI,还有 Media、Socket、ODBC 等库。 假如我们下载的是 wxMS
2009-10-14 14:09:00 661
volta-architecture-whitepaper.zip
2020-04-01
每个程序员应该知道的内存
2015-11-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人