自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

转载 centos6.5安装python2.7、pip、numpy、scipy

centos6.5安装python2.7、pip、numpy、scipy1..安装Development Toolsyum groupinstall -y 'development tools'2.安装SSL、bz2、zlib来为Python的安装做好准备工作yum install -y zlib-devel bzip2-devel openssl-devel xz-libs ...

2019-09-20 11:41:52 541

转载 malloc()和calloc()有啥区别

函数malloc()和calloc()都可以用来动态分配内存空间,但两者稍有区别。malloc()函数有一个参数,即要分配的内存空间的大小:void *malloc(size_t size);calloc()函数有两个参数,分别为元素的数目和每个元素的大小,这两个参数的乘积就是要分配的内存空间的大小。void *calloc(size_t numElements,size_t sizeOfElem...

2018-06-13 14:08:35 21426 3

转载 CUDA:一维、二维的grid、block的核函数线程分配

1.一维grid,一维block[cpp] view plain copy int nx = 1 << 14;  int ny = 1 << 14;  int dimx = 32;  dim3 block(dimx, 1);  dim3 grid((nx + block.x - 1) / block.x, 1);  核函数[cpp] view plain copy __gl...

2018-06-09 15:10:49 2440

转载 cuda shared memory 静态分配和动态分配

静态分配加上前缀 shared__shared__ int _ss[1024];1动态分配当我们在编程时,不清楚shared memory 数组开多大,就要用到动态分配。 分为两部分: 1, 声明extern __shared__ int _s[];12, 在调用kernel 时加上数组的大小。xxx_kernel<<<grid, block, sharedMemSize>...

2018-06-09 14:24:48 1275

转载 C语言中%d,%s,%x,%f,%.100f,%的意思

格式说明由“%”和格式字符组成,如%d%f等。它的作用是将输出的数据转换为指定的格式输出。格式说明总是由“%”字符开始的。 格式字符有d,o,x,u,c,s,f,e,g等。 如%d整型输出,%ld长整型输出,%o以八进制数形式输出整数,%x以十六进制数形式输出整数,或输出字符串的地址。%u以十进制数输出unsigned型数据(无符号数)。注意:%d与%u有无符号的数值范围,也就是极限的值,不然数...

2018-06-09 14:19:08 33024

转载 有没有CPU多线程调用GPU?就是CPUpthread_create创建多个线程,执行GPU代码,会不会... [

问题:就是CPUpthread_create创建多个线程,执行GPU代码,会不会有问题?[size=18.9999980926514px]答:没有任何问题的。你的这个模型(开多个CPU线程,每个线程单独处理1个stream上的kernel启动或者复制任务)其实是最经典的模型。完全无任何问题的。请大胆使用。最常见的是,只有1张卡的时候,同时使用2-3个线程,分别建立2-3个streams,处理该GP...

2018-06-09 10:27:20 7584

转载 linux下提示bash:command not found

新安装的linux系统,如果进行精简安装可能会出现bash:command not found 的提示,大家在安装的时候可以选择默认安装basic的组件,一般即可。到时候可以再升级。如果新装的系统,运行一些很正常的诸如:shutdown,fdisk的命令时,悍然提示:bash:command not found。那么 首先就要考虑root 的$PATH里是否已经包含了这些环境变量。 主要是这四个:...

2018-06-09 10:25:40 12280

转载 【GPU编程系列之二】CUDA编程基础

转自:http://www.cnblogs.com/stewart/archive/2013/01/05/2846860.html1.什么是CUDA       CUDA(Compute Unified Device Architecture),统一计算架构,是NVidia推出的并行计算平台。NVidia官方对其的解释是:一个并行计算平台和简单(简洁)地使用图像处理单元(GPU)进行通用计算的编程...

2018-06-08 18:53:57 3629

转载 详解CUDA核函数及运行时参数

详解CUDA核函数及运行时参数核函数是GPU每个thread上运行的程序。必须通过__gloabl__函数类型限定符定义。形式如下:                __global__ void kernel(param list){  }核函数只能在主机端调用,调用时必须申明执行参数。调用形式如下:                Kernel<<<Dg,Db, Ns, S&gt...

2018-06-08 18:50:10 1932

转载 CentOS安装nvidia显卡驱动

最近折腾了CentOS的显卡驱动,踩了不少坑,最后终于装成功了,不得不感慨CentOS真是与众不同啊。常用的驱动安装方法有2种:手动编译和从ELRepo源安装,一般来说搜索的时候看到的都是前者,即“安装编译环境, 到nvidia官网下载驱动文件,把nouveau加入blacklist, 进入命令行模式重启安装……”这样的,不过这种方法适用于Ubuntu系的操作系统,CentOS的话,从网上一些文章...

2018-06-05 10:54:28 17122 2

原创 CentOS6.9 内核升级(2.6.32-696.16.1升级到4.4.135-1.el6)

CentOS6.9 内核升级(2.6.32-696.16.1升级到4.4.135-1.el6.elrepo.x86_64),操作系统是6.9 x86_64位了解一下elrepoelrepo是CentOS十分有用的稳定的软件源,与其他软件源不一样的是,这个第三方源主要是提供硬件驱动、内核更新方面的支持,如显卡、无线网卡、内核等等,现在已经支持centos7.x+,更新较快。1、查看内核[root@c...

2018-06-04 22:50:18 2004

转载 cudaMemGetInfo获取的可用显存和全部显存有问题和实际有出入?CPU多线程调用GPU

我在vs上运行cuda程序,用cudaMemGetInfo获得的总的显存是3g,但是实际应该有4g。可用的显存是3028M,那就是用了44M,但是用GPU-Z和nvidia-smi都显示用了800多M,不知道为什么是这样?这种问题很难定量。例如一台有 32GB 内存的机器,但是在 C 里面也没办法全部用上,因此操作系统会占用一部分,至于占用多少?这个是非常底层的事情。同样的,显存并非完全留给代码使...

2018-06-04 19:19:53 3815

转载 多GPU并行计算

一般一个cpu线程控制一个gpu所以多gpu使用多个cpu线程控制使用cudaSetDevice(gpuid)设置当前操作的gpu即可

2018-06-04 19:14:38 3730

原创 #pragma omp critical-----OpenMP 参考 (同步构造)CRITICAL 指令

目的:CRITICAL指令指定一块同一时间只能被一条线程执行的代码区域注意:如果一条线程正在一个CRITICAL区域执行而另一个线程到达这个区域,并企图执行,那么它将会被阻塞,直到第一个线程离开这个区域.命名是可选项,使不同的CRITICAL区域共存:命名是全局标志符.具有相同命名的不同的CRITICAL区域被当作同一个区域所有未命名CRITICAL区域被当作同一个区域限制:扩充CRITICAL ...

2018-06-04 14:14:10 15556

转载 NVIDIA GPU结构

目前市场上的NVIDIA显卡都是基于Tesla架构的,分为G80、G92、GT200三个系列。Tesla体系架构是一块具有可扩展处器数量的处理器阵列。每个GT200 GPU包含240个流处理器(streamingprocessor,SP),每8个流处理器又组成了一个流多处理器(streaming multiprocessor,SM),因此共有30个流多处理器。GPU在工作时,工作负载由PCI-E总...

2018-06-02 17:19:35 1658

翻译 Runtime API 函数:cudaGetDeviceCount,cudaGetDeviceProperties,cudaSetDevice,在cuda_runtime.h 头文件中

1. CUDA 初始化函数由于是使用 Runtime API, 所以在文件开头要加入 cuda_runtime.h 头文件。 初始化函数包括一下几个步骤: 1.1. 获取 CUDA 设备数可以通过 cudaGetDeviceCount 函数获取 CUDA 的设备数,具体用法,如下所示:// get the cuda device countcudaGetDeviceCount(&coun...

2018-06-02 16:52:53 21309 4

转载 GPU中的几个基本概念

术语: single instruction, multiple thread (SIMT): a single instruction is executed on several function units in parallelGPU的硬件结构中与CUDA相关的几个概念:thread block grid warp sp smstreaming processor(sp): 最基本的处理单...

2018-06-02 12:04:20 22650 2

转载 fprintf中使用stderr

fprintf(stderr, "%s:%d", __FILE__, __LINE__,)这里的stderr是会打印到屏幕还是生成一个文件(文件名是什么)呢?谢谢!回答:会打印到屏幕上。因为:(见 MSDN)fprintf 函数的功能是: Print formatted data to a stream格式化输出数据到流,这个流并没有特指是文件流。关于 stdin、stdout、stderr 的说...

2018-06-01 19:23:49 10580

转载 ulimit(选项)

-a:显示目前资源限制的设定;-c <core文件上限>:设定core文件的最大值,单位为区块;-d <数据节区大小>:程序数据节区的最大值,单位为KB;-f <文件大小>:shell所能建立的最大文件,单位为区块;-H:设定资源的硬性限制,也就是管理员所设下的限制;-m <内存大小>:指定可使用内存的上限,单位为KB;-n <文件数目>...

2018-06-01 13:54:03 578

转载 Linux将命令添加到PATH中及PA LD_LIBRARY_PATH用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径

Linux将命令添加到PATH中博客分类:linuxLinuxApacheBash简单说PATH就是一组路径的字符串变量,当你输入的命令不带任何路径时,LINUX会在PATH记录的路径中查找该命令。有的话则执行,不存在则提示命令找不到。比如在根目录/下可以输入命令ls,在/usr目录下也可以输入ls,但其实ls命令根本不在这个两个目录下,当你输入ls命令时LINUX会去/bin,/usr/bin,...

2018-06-01 11:43:57 1797

转载 CUDA: 简单入门

1. 准备makefile为了避免每次都要键入nvcc的命令,要准备一个makefile。makefile如下:[plain] view plain copyCUFLAG = -g  -Xcompiler -v \          -gencode=arch=compute_20,code=sm_20\          -gencode=arch=compute_20,code=compute...

2018-06-01 11:40:54 413 1

转载 python ctypes 探究-----python与c的交互

近几天使用 python 与 c/c++ 程序交互,网上有推荐swig但效果都不理想,所以琢磨琢磨了 python 的 ctypes 模块。同时,虽然网上有这方面的内容,但是感觉还是没说清楚。这里记录下来做备用,同时也给广大 python with c/c++ 派留给方便。如果你觉得我写的不好,可以参考官方文档里对 ctypes 的介绍,那里说不一定有你想要的。如有错误,请指正:)。测试环境: w...

2018-06-01 11:37:38 134

转载 NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the lat

在Azure 申请了一台 K80的虚拟机,redhat7 系统。在安装cuda时,可以成功,但在执行nvidia-smi 时,总是报错:NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed a...

2018-06-01 11:25:57 790

转载 GPU

2018-05-31 21:07:49 279

转载 assert()函数用法总结

assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include <assert.h>void assert( int expression );  assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看...

2018-05-31 20:19:10 114096 2

原创 编译时报错add5.cu:4:20: error: cutil.h: No such file or directory ,因为需要正确的库文件

[root@ca206 cuda]# nvcc -o add5 add5.cu add5.cu:4:20: error: cutil.h: No such file or directory[root@ca206 cuda]# find / -name cutil.h/home/gpu-tutorials/code/NVIDIA_GPU_Computing_SDK/CUDALibraries/co...

2018-05-31 13:47:54 788

转载 GPU通用计算编程

GPU通用计算通常采用CPU+GPU异构模式,由CPU负责执行复杂逻辑处理和事务处理等不适合数据并行的计算,由GPU负责计算密集型的大规模数据并行计算。 OpenCL(Open Computing Language,开放运算语言)是第一个面向异构系统通用目的并行编程的开放式、免费标准,也是一个统一的编程环境,便于软件开发人员为高性能计算服务器、桌面计算系统、手持设备编写高效轻便的代码,而且广泛适用...

2018-05-29 21:35:59 2434

转载 C程序输出系统当前时间

需要利用C语言的时间函数time和localtime,具体说明如下:一、函数接口介绍:1、time函数。形式为time_t time (time_t *__timer);其中time_t为time.h定义的结构体,一般为长整型。这个函数会获取当前时间,并返回。 如果参数__timer非空,会存储相同值到__timer指向的内存中。 time函数返回的为unix时间戳,即从1970年1月1日(UTC...

2018-05-28 15:54:53 9758

转载 c程序输出系统当前时间——年/月/日/ 时:分:秒

vi current_time1.cgcc -o current_time1 current_time1.c./current_time1源程序:#include <stdio.h>#include <time.h>int main(){  time_t t;  struct tm * lt;  time (&t);  lt = localtime(&t);...

2018-05-28 15:52:14 4939

原创 omp指导语句后有双层for循环,内层循环与外层循环相互独立OR内层循环依赖于外层循环时,任务与线程分布关系

本人电脑2个CPU,每个CPU上有8个核,总共有2*8*2=32个逻辑CPU结论:不管内层for循环是否依赖于外层for循环,其任务分配依据外层for循环迭代的次数来分配线程,这里下面1、2两种情况外层for循环均是32次,所以刚好将任务分为32个线程并行运行。1、内层for循环依赖于外层for循环时#include <stdio.h>#include <omp.h>int...

2018-05-28 15:41:28 3647 1

原创 #pragma omp parallel for private()中可以指定数组.数组的大小是初始定义的,内容是进程内部定义的,初始定义不会影响到每个进程内部

#include <stdio.h>#include <omp.h>int main(){int k=20;int j[10];j[0]=20;#pragma omp parallel for private(k,j)    for(k=0;k<10;k++)    {       printf("k->%d id=%d\t",k,omp_get_thread_...

2018-05-26 15:37:48 4402

转载 OpenMP 中的线程任务调度

OpenMP中任务调度主要针对并行的for循环,当循环中每次迭代的计算量不相等时,如果简单地给各个线程分配相同次数的迭代,则可能会造成各个线程计算负载的不平衡,影响程序的整体性能。如下面的代码中,如果每个线程执行的任务数量平均分配,有的线程会结束早,有的线程结束晚: 1 #include<stdio.h> 2 #include<omp.h> 3 4 int main...

2018-05-26 14:52:29 256

转载 Linux查看物理CPU个数、核数、逻辑CPU个数

CPU总核数 = 物理CPU个数 * 每颗物理CPU的核数 总逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数查看CPU信息(型号)[root@AAA ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 24 Intel(R) Xeon(R) CPU E5-2630 0 @ 2.30...

2018-05-25 20:58:16 462

转载 error: 'for' loop initial declarations are only allowed in C99 mode

使用gcc编译代码是报出error: 'for' loop initial declarations are only allowed in C99 modenote: use option -std=c99 or -std=gnu99 to compile your code错误,这是因为在gcc中直接在for循环中初始化了增量: for(int i=0; i<len; i++) { }...

2018-05-24 15:23:19 223

原创 安装python辅助工具 setuptools报错 RuntimeError: Compression requires the (missing) zlib module

安装python辅助工具 setuptools报错,报File "/usr/local/python2.7.12/lib/python2.7/zipfile.py", line 736, in __init__    "Compression requires the (missing) zlib module"RuntimeError: Compression requires the (mis...

2018-05-10 19:55:50 5281 1

原创 gcc: error trying to exec 'cc1plus': execvp: No such file or directory

make matlab_gpu编译时报错gcc: error trying to exec 'cc1plus': execvp: No such file or directory执行yum install gcc-c++后,问题解决...

2018-05-10 19:52:59 9473

转载 centos安装matlab2016b

写文章Matlab2016 linux(centos6.5) 命令安装,无图形界面,解决不能在远程安装的破解问题lzqd314919Matlab2016b安装教程,linux 版本安装环境:centos6.5, 远程桌面命令安装源文件大家可以到人大经济论坛上找到准备3个安装源文件R2016b_glnxa64_dvd1.iso, R2016b_glnxa64_dvd2.iso, activation...

2018-05-09 20:06:05 1767

转载 Matlab2016 linux(centos6.5) 命令安装,无图形界面,解决不能在远程安装的破解问题

Matlab2016b安装教程,linux 版本安装环境:centos6.5, 远程桌面命令安装准备3个安装源文件R2016b_glnxa64_dvd1.iso, R2016b_glnxa64_dvd2.iso, Matlab-2016b-Linux64-Crack(破解文件)Example: 注明文中的: /home/fengtian/Programs 这个目录是本人 安装测试路径,读者可以根...

2018-05-04 21:52:04 1568

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除