10 2013 档案

摘要:由于没有使用profiler,仅仅通过简单的传输函数测试,如下测试了10000个点,1000000个点,100000000个点的速度:均按时钟周期来计时,通过MAX调整数据int main(){ clock_t start,finish; int *d_data,*h_data; h_data = (int *)calloc(MAX, sizeof(int)); memset(h_data,0,MAX*sizeof(int)); cudaMalloc((void **) &d_data,MAX*sizeof(int)); start = clock(); ... 阅读全文
posted @ 2013-10-30 16:51 xingoo 阅读(1238) 评论(0) 推荐(0) 编辑
摘要:使用vs2010时,遇到如下错误然后点击继续后:点击终止:观察变量:根据提示发现,有可能是断点问题,于是猜想可能是指针的错误。google发现,这种错误可能是由于指针的释放跨越了模块。比如我的程序中代码如下:int *aa;aa= (int *)calloc(2* n, sizeof(int));free(aa);这个是正常的步骤。但是我失败的例子是这样的:int aa[10]={0};free(aa);就会造成指针的越级释放,从而引发断电。也就是说,释放指针遵循:谁申请谁释放。在int aa[10]={0};并没有申请指针,虽然可以通过aa当做指针来使用,但是没有申请的操作,释放也自然回引起 阅读全文
posted @ 2013-10-25 09:35 xingoo 阅读(6282) 评论(0) 推荐(0) 编辑
摘要:平时总需要新建工程,但是却总忘记该修改哪里,于是寻找了官方的项目,截下其中的属性修改图。1234567891011 阅读全文
posted @ 2013-10-25 09:08 xingoo 阅读(318) 评论(0) 推荐(0) 编辑
摘要:每次为了减少初始化的工作量,可以写入下面的宏。#define CUT_DEVICE_INIT(ARGC,ARGV){ \ int deviceCount; \ CUDA_SAFE_CALL_NO_SYNC(cudaGetDeviceCount(&deviceCount)); \ if(deviceCount == 0){ \ fprintf(stderr,"cutil error:no devices supporting CUDA.\n") \ exit(EXIT_FAILURE); \ } \ ... 阅读全文
posted @ 2013-10-15 09:44 xingoo 阅读(1310) 评论(0) 推荐(0) 编辑
摘要:最近,需要在kernel函数中调用浮点型的随机数。于是上网搜了下相关资料,一种方式是自己手动写一个随机数的__device__函数,然后在调用的时候调用这个函数。另一种,原来cuda在toolkit中给出了实现方式。首先要用到三个函数:curandCreateGenerator(&gen,CURAND_RNG_PSEUDO_DEFAULT); 指定触发器为gen,随机方式为CURAND_RNG_PSEUDO_DEFAULTcurandSetPseudoRandomGeneratorSeed(gen,1234ULL);指定种子为1234ULL(不同的种子产生的随机数列是不一样的)cura 阅读全文
posted @ 2013-10-14 20:12 xingoo 阅读(5784) 评论(8) 推荐(2) 编辑
摘要:Translatedbyxingoo如果有错误请联系:xinghl90@gmail.com2.3返回值所有的CURANDhost端的函数返回值都是curandStatus_t.如果调用没有错误,则返回成功,即返回值为CURAND_STATUS_SUCCESS.如果发生了错误,返回值会依据错误的不同而不同。因为cuda允许内核函数异步的调用cpu端的代码,因此返回的错误,有可能是在调用函数库时发生的,而非CURAND内核函数,此时,返回值是CURAND_STATUS_PREEXISTING.2.4触发函数curandStatus_t curandGenerate(curandGenerator_ 阅读全文
posted @ 2013-10-14 19:46 xingoo 阅读(2249) 评论(0) 推荐(0) 编辑
摘要:原文来自:cuda curand toolkit documentTranslatedbyxingoo如果有错误请联系:xinghl90@gmail.com2HostAPI简述使用hostapi,用户需要在头文件的部分包含curand.h,并且添加CURAND的动态链接库,即在LINKER的INPUT里面添加”curand.lib;”。这个文档是基于CUDAruntime的,所以用户的代码也应该是在runtime时调用的。而driverAPI是不支持CURAND的。触发器生成随机数,CURAND同过内部的封装产生伪随机数列或者真随机数列。具体的步骤如下:1使用函数curandCreateGen 阅读全文
posted @ 2013-10-11 21:37 xingoo 阅读(2108) 评论(1) 推荐(0) 编辑
摘要:因中心工作需要,在全国范围内招聘如下职位:并行计算应用程序开发和应用支持的工程师1. 211重点院校、硕士2. 计算机应用,计算数学,计算物理专业3. 熟练应用C++、C、Fortran编程语言中的一种以上4. 熟悉并行算法,完成过基于MPI、OpenMP等的并行程序开发5. 熟悉Linux操作系统,并能熟练应用shell、Perl等工具6. 有从事并行计算开发项目经历、熟悉性能分析工具者优先考虑;GPU应用软件设计、开发与优化的工程师1. 211重点院校、硕士2. 计算机科学与技术计算机应用专业3. 熟练应用C++、C编程语言4. 完成过基于CUDA、OpenCL等的GPU应用程序开发5. 阅读全文
posted @ 2013-10-10 21:08 xingoo 阅读(538) 评论(0) 推荐(0) 编辑
摘要:最近一直在纠结这个问题.最近写代码,总是遇到这个问题,一旦遇到这个问题,以前好使的代码也就不好使了。很费解,上网搜集了下资料....这个0xcccccccc是DEBUG模式下,编译器为没有初始化的指针填充的地址值。当你进入到断电时,也会看到很多其他的未初始化的指针都是这个值而为什么会是这个值呢?因为,0xcc是INT 3的机器码,而这个INT 3是留给编译器中断时用的 替换向量,一旦断电继续执行下,就会替换掉这个值。为什么系统要填充这个固定的值呢?因为,在DEBUG模式下,就是为了测试代码的运行。如果每次都随机指定一个地址,那最后测试的结果也会不一样。如果随机填充了一个地址,这个地址在未经初始 阅读全文
posted @ 2013-10-10 10:52 xingoo 阅读(5344) 评论(0) 推荐(0) 编辑
摘要:运维监控总少不了一些脚本来监控自己的机器,博主自己写了个监控,并通过sleep来控制输出的间隔时间。如果想要获取其他的相关信息,可以采用类似的方式,添加即可。 首先是服务器的负载监控脚本,主要输出了 内存,CPU,网络连接等信息 然后是单独列出 日期时间以及CPU负载的 文本处理脚本,主要进行了自动 阅读全文
posted @ 2013-10-09 14:36 xingoo 阅读(1336) 评论(1) 推荐(0) 编辑
摘要:这两天不知道怎么回事,IPV4竟然无法修改,郁闷之极下,想到用命令行试试。于是敲入下面的代码:>netsh netsh>interface interface>ip interface ip>set address "本地连接" static 192.168.101.38 255.255.255.0 192.168.101.254 interface ip>exit即可 阅读全文
posted @ 2013-10-07 14:27 xingoo 阅读(598) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示