- 博客(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
554
转载 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
21630
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
2723
转载 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
1352
转载 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
33101
转载 有没有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
7707
转载 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
12297
转载 【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
3671
转载 详解CUDA核函数及运行时参数
详解CUDA核函数及运行时参数核函数是GPU每个thread上运行的程序。必须通过__gloabl__函数类型限定符定义。形式如下: __global__ void kernel(param list){ }核函数只能在主机端调用,调用时必须申明执行参数。调用形式如下: Kernel<<<Dg,Db, Ns, S>...
2018-06-08 18:50:10
1997
转载 CentOS安装nvidia显卡驱动
最近折腾了CentOS的显卡驱动,踩了不少坑,最后终于装成功了,不得不感慨CentOS真是与众不同啊。常用的驱动安装方法有2种:手动编译和从ELRepo源安装,一般来说搜索的时候看到的都是前者,即“安装编译环境, 到nvidia官网下载驱动文件,把nouveau加入blacklist, 进入命令行模式重启安装……”这样的,不过这种方法适用于Ubuntu系的操作系统,CentOS的话,从网上一些文章...
2018-06-05 10:54:28
17375
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
2090
转载 cudaMemGetInfo获取的可用显存和全部显存有问题和实际有出入?CPU多线程调用GPU
我在vs上运行cuda程序,用cudaMemGetInfo获得的总的显存是3g,但是实际应该有4g。可用的显存是3028M,那就是用了44M,但是用GPU-Z和nvidia-smi都显示用了800多M,不知道为什么是这样?这种问题很难定量。例如一台有 32GB 内存的机器,但是在 C 里面也没办法全部用上,因此操作系统会占用一部分,至于占用多少?这个是非常底层的事情。同样的,显存并非完全留给代码使...
2018-06-04 19:19:53
3896
转载 多GPU并行计算
一般一个cpu线程控制一个gpu所以多gpu使用多个cpu线程控制使用cudaSetDevice(gpuid)设置当前操作的gpu即可
2018-06-04 19:14:38
3774
原创 #pragma omp critical-----OpenMP 参考 (同步构造)CRITICAL 指令
目的:CRITICAL指令指定一块同一时间只能被一条线程执行的代码区域注意:如果一条线程正在一个CRITICAL区域执行而另一个线程到达这个区域,并企图执行,那么它将会被阻塞,直到第一个线程离开这个区域.命名是可选项,使不同的CRITICAL区域共存:命名是全局标志符.具有相同命名的不同的CRITICAL区域被当作同一个区域所有未命名CRITICAL区域被当作同一个区域限制:扩充CRITICAL ...
2018-06-04 14:14:10
16343
转载 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
1677
翻译 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
22006
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
23094
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
11212
转载 ulimit(选项)
-a:显示目前资源限制的设定;-c <core文件上限>:设定core文件的最大值,单位为区块;-d <数据节区大小>:程序数据节区的最大值,单位为KB;-f <文件大小>:shell所能建立的最大文件,单位为区块;-H:设定资源的硬性限制,也就是管理员所设下的限制;-m <内存大小>:指定可使用内存的上限,单位为KB;-n <文件数目>...
2018-06-01 13:54:03
590
转载 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
1817
转载 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
438
1
转载 python ctypes 探究-----python与c的交互
近几天使用 python 与 c/c++ 程序交互,网上有推荐swig但效果都不理想,所以琢磨琢磨了 python 的 ctypes 模块。同时,虽然网上有这方面的内容,但是感觉还是没说清楚。这里记录下来做备用,同时也给广大 python with c/c++ 派留给方便。如果你觉得我写的不好,可以参考官方文档里对 ctypes 的介绍,那里说不一定有你想要的。如有错误,请指正:)。测试环境: w...
2018-06-01 11:37:38
149
转载 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
807
转载 assert()函数用法总结
assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include <assert.h>void assert( int expression ); assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看...
2018-05-31 20:19:10
114523
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
814
转载 GPU通用计算编程
GPU通用计算通常采用CPU+GPU异构模式,由CPU负责执行复杂逻辑处理和事务处理等不适合数据并行的计算,由GPU负责计算密集型的大规模数据并行计算。 OpenCL(Open Computing Language,开放运算语言)是第一个面向异构系统通用目的并行编程的开放式、免费标准,也是一个统一的编程环境,便于软件开发人员为高性能计算服务器、桌面计算系统、手持设备编写高效轻便的代码,而且广泛适用...
2018-05-29 21:35:59
2459
转载 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
10072
转载 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
5007
原创 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
3747
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
4472
转载 OpenMP 中的线程任务调度
OpenMP中任务调度主要针对并行的for循环,当循环中每次迭代的计算量不相等时,如果简单地给各个线程分配相同次数的迭代,则可能会造成各个线程计算负载的不平衡,影响程序的整体性能。如下面的代码中,如果每个线程执行的任务数量平均分配,有的线程会结束早,有的线程结束晚: 1 #include<stdio.h> 2 #include<omp.h> 3 4 int main...
2018-05-26 14:52:29
281
转载 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
469
转载 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
228
原创 安装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
5323
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
9493
转载 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
1793
转载 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
1597
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人