cuda内存拷贝问题,PCIE设备间数据拷贝

我有数据在另一张PCIE卡中(就叫采集卡吧,用fpga实现。)现在是从采集卡dma读到主机内存中 再拷贝到 显卡中,有没有更直接的方法采集卡数据直接拷贝到显卡中?

1个回答

Peer 2 peer

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
一个关于tensorflow和CUDA安装的问题
我的系统是Linux,我用Anaconda安装tensorflow-gpu是否还需要单独安装CUDA,我看他已经给我顺便安了cudatoolkit和cudnn,是不是就不用再安CUDA了? 另一个问题是,如果我想用C++版的opencv调用CUDA,是不是还得再自己安装CUDA啊?
Unexpected CUDA error: invalid argument
我在使用tensorflow-gpu时,运行如下的代码: ``` import tensorflow as tf a = tf.constant([1.0,2.0,3.0],shape = [3],name='a') print(a) ``` 能正确显示 ``tf.Tensor([1. 2. 3.], shape=(3,), dtype=float32)`` 但当我加入以下两行代码 ``` b = tf.constant([1.0,2.0,3.0], shape = [3],name='b') a+b ``` 会报如下的错误 ``` F tensorflow/stream_executor/cuda/cuda_driver.cc:209] Check failed: err == cudaSuccess || err == cudaErrorInvalidValue Unexpected CUDA error: invalid argument ``` 请大神帮忙解答 ================================================ 参照这篇博客,重新安装了一下,问题已经解决了 [https://blog.csdn.net/weixin_43411129/article/details/101390407](https://blog.csdn.net/weixin_43411129/article/details/101390407)
使用kali的hashcat工具破解office2007密码,总是不成功,终端显示如下
通过虚拟机做的实验,1.txt存储hash值,/usr/share/wordlists/password.txt 是字典,一共才3位,字典没有问题,执行完毕没有生成2.txt,弄了半天,不知道什么原因,下面是执行时终端的显示 root@wsw:~/john-1.8.0-jumbo-1/run# hashcat -m 9400 1.txt /usr/share/wordlists/password.txt -o 2.txt --force hashcat (v5.1.0) starting... OpenCL Platform #1: The pocl project ==================================== * Device #1: pthread-Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz, 1024/2943 MB allocatable, 1MCU Hashes: 1 digests; 1 unique digests, 1 unique salts Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates Rules: 1 Applicable optimizers: * Zero-Byte * Single-Hash * Single-Salt * Slow-Hash-SIMD-LOOP Minimum password length supported by kernel: 0 Maximum password length supported by kernel: 256 Watchdog: Hardware monitoring interface not found on your system. Watchdog: Temperature abort trigger disabled. * Device #1: build_opts '-cl-std=CL1.2 -I OpenCL -I /usr/share/hashcat/OpenCL -D LOCAL_MEM_TYPE=2 -D VENDOR_ID=64 -D CUDA_ARCH=0 -D AMD_ROCM=0 -D VECT_SIZE=8 -D DEVICE_TYPE=2 -D DGST_R0=0 -D DGST_R1=1 -D DGST_R2=2 -D DGST_R3=3 -D DGST_ELEM=4 -D KERN_TYPE=9400 -D _unroll' Dictionary cache hit: * Filename..: /usr/share/wordlists/password.txt * Passwords.: 1000 * Bytes.....: 4000 * Keyspace..: 1000 Approaching final keyspace - workload adjusted. Session..........: hashcat Status...........: Exhausted Hash.Type........: MS Office 2007 Hash.Target......: $office$*2007*20*128*16*702f915f20215bfe6cd028bd9e8...ad0dc3 Time.Started.....: Tue Feb 11 12:00:50 2020 (3 secs) Time.Estimated...: Tue Feb 11 12:00:53 2020 (0 secs) Guess.Base.......: File (/usr/share/wordlists/password.txt) Guess.Queue......: 1/1 (100.00%) Speed.#1.........: 330 H/s (3.71ms) @ Accel:512 Loops:128 Thr:1 Vec:8 Recovered........: 0/1 (0.00%) Digests, 0/1 (0.00%) Salts Progress.........: 1000/1000 (100.00%) Rejected.........: 0/1000 (0.00%) Restore.Point....: 1000/1000 (100.00%) Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:49920-50000 Candidates.#1....: 512 -> 999 Started: Tue Feb 11 12:00:48 2020 Stopped: Tue Feb 11 12:00:55 2020
CUDA编程内存不足怎样解决
使用CUDA对大数据进行编程,运行时显卡内存不足有没有什么好的解决办法,望大神指点一二,谢谢!!!
cuda一个global函数里调用多个核函数出问题。
caffe编写loss层时, 我一个global函数里有多个核函数,但是有时前两个核函数不执行,有时候又执行,不清楚问题出在哪里? ``` template <typename Dtype> void PixelClustingLossLayer<Dtype>::Forward_gpu( const vector<Blob<Dtype>*>& bottom, const vector<Blob<Dtype>*>& top) { const int num = bottom[0]->num(); const int data_channels = bottom[0]->channels(); const int mask_channels = bottom[1]->channels(); const int height = bottom[0]->height(); const int width = bottom[0]->width(); const int spatial_dim = height * width; const int nc = num * data_channels; const int data_count = bottom[0]->count(); const int mask_count = bottom[1]->count(); Dtype* pos_num_data = pos_num_.mutable_cpu_data(); Dtype* neg_num_data = neg_num_.mutable_cpu_data(); caffe_gpu_set(mask_count, Dtype(0.), pixel_mask_.mutable_gpu_data()); caffe_gpu_set(num, Dtype(0.), loss_mask_.mutable_gpu_data()); caffe_gpu_set(num*data_channels, Dtype(0.), pos_ave_.mutable_gpu_data()); caffe_gpu_set(num*data_channels, Dtype(0.), neg_ave_.mutable_gpu_data()); caffe_gpu_set(num, Dtype(0.), pos_loss_.mutable_gpu_data()); caffe_gpu_set(num, Dtype(0.), neg_loss_.mutable_gpu_data()); caffe_gpu_set(num, Dtype(0.), center_loss_.mutable_gpu_data()); for(int n=0; n<num; ++n) { caffe_gpu_asum(spatial_dim, bottom[1]->gpu_data() + n * spatial_dim, pos_num_.mutable_cpu_data() + n); neg_num_data[n] = spatial_dim - pos_num_data[n]; } //LOG(INFO)<<"There are "<<pos_num_.cpu_data()[0]<<" pos pixels and "<<neg_num_.cpu_data()[0]<<" neg pixels."; GetTotalValue<Dtype> <<<CAFFE_GET_BLOCKS(data_count), CAFFE_CUDA_NUM_THREADS>>>(data_count, bottom[0]->gpu_data(), bottom[1]->gpu_data(), pos_ave_.mutable_gpu_data(), neg_ave_.mutable_gpu_data(), data_channels, height, width); //LOG(INFO)<<"There are 111 neg pixels."; GetAveValue<Dtype> <<<CAFFE_GET_BLOCKS(nc), CAFFE_CUDA_NUM_THREADS>>>(nc, pos_num_.gpu_data(), neg_num_.gpu_data(), pos_ave_.mutable_gpu_data(), neg_ave_.mutable_gpu_data(), center_loss_.mutable_gpu_data(), data_channels); //LOG(INFO)<<"There are 222 neg pixels."; PowerEuclideanDistance<Dtype> <<<CAFFE_GET_BLOCKS(mask_count), CAFFE_CUDA_NUM_THREADS>>>(mask_count, bottom[0]->gpu_data(), bottom[1]->gpu_data(), pos_ave_.gpu_data(), neg_ave_.gpu_data(), euclidean_dis_.mutable_gpu_data(), mask_channels, data_channels, height, width); ComputePixelLoss<Dtype> <<<CAFFE_GET_BLOCKS(mask_count), CAFFE_CUDA_NUM_THREADS>>>(mask_count, bottom[1]->gpu_data(), euclidean_dis_.gpu_data(), pos_loss_.mutable_gpu_data(), neg_loss_.mutable_gpu_data(), pos_num_.gpu_data(), neg_num_.gpu_data(), pixel_mask_.mutable_gpu_data(), mask_channels, height, width, alpha_); ComputeClassLoss<Dtype> <<<CAFFE_GET_BLOCKS(num), CAFFE_CUDA_NUM_THREADS>>>(num, center_loss_.mutable_gpu_data(), loss_mask_.mutable_gpu_data(), beta_); caffe_gpu_add(num, neg_loss_.gpu_data(), pos_loss_.gpu_data(), loss_.mutable_gpu_data()); caffe_gpu_add(num, loss_.gpu_data(), center_loss_.gpu_data(), loss_.mutable_gpu_data()); Dtype loss; caffe_gpu_asum(num, loss_.gpu_data(), &loss); LOG(INFO)<<loss/Dtype(num); top[0]->mutable_cpu_data()[0] = loss / num; } ``` 主要是GetTotalValue()函数和GetAveValue()函数,偶尔执行,偶尔不执行,头都晕了。 有没有大神指点迷津。
pytorch expected Tensor as element 0 in argument 0, but got tuple
做风格迁移学习时,在 target_feature=model(style_img).clone()发生错误,expected Tensor as element 0 in argument 0, but got tuple 然而style_img的格式是torch.cuda.FloatTensor import torch import torch.nn as nn from torch.autograd import Variable import torch.optim as optim from PIL import Image import matplotlib.pyplot as plt import torchvision.transforms as transforms import torchvision.models as models import copy use_cuda=torch.cuda.is_available() dtype=torch.cuda.FloatTensor if use_cuda else torch.FloatTensor style='images/timg.jpg' content='images/123.jpg' style_weight=1000 content_weight=1 imsize=128 loader=transforms.Compose([ transforms.Resize(imsize), transforms.ToTensor() ]) def image_loader(image_name): image=Image.open(image_name) image=Variable(loader(image)) image=image.unsqueeze(0) return image style_img=image_loader(style).type(dtype) content_img=image_loader(content).type(dtype) print(style_img) assert style_img.size()==content_img.size() def imshow(tensor,title=None): image=tensor.clone().cpu() image=image.view(3,imsize,imsize) image=unloader(image) plt.imshow(image) if title is not None: plt.title(title) plt.pause(0.001) unloader=transforms.ToPILImage() # plt.ion() # # plt.figure() # imshow(style_img.data,title='Style Image') # # plt.figure() # imshow(content_img.data,title='Content Image') # 加载网络 cnn=models.vgg19(pretrained=True).features if use_cuda: cnn=cnn.cuda() class ContentLoss(nn.Module): def __init__(self,target,weight): super(ContentLoss,self).__init__() self.target=target.detach()*weight self.weight=weight self.criterion=nn.MSELoss() def forward(self, *input): self.loss=self.criterion(input*self.weight,self.target) self.output=input return self.output def backward(self,retain_graph=True): self.loss.backward(retain_graph=retain_graph) return self.loss class StyleLoss(nn.Module): def __init__(self,target,weight): super(StyleLoss,self).__init__() self.target=target.detach()*weight self.weight=weight #self.gram=GramMatrix() self.criterion=nn.MSELoss() def forward(self,input): self.output=input.clone() input=input.cuda() self_G=Gram(input) self_G.mul(self.weight) self.loss=self.criterion(self_G,self.target) return self.output def backward(self,retain_graph=True): self.loss.backward(retain_graph=retain_graph) return self.loss def Gram(input): a,b,c,d=input.size() features=input.view(a*b,c*d) G=torch.mm(features,features.t()) return G.div(a*b*c*d) content_layers=['conv_4'] style_layers=['conv_1','conv_2','conv_3','conv_4','conv_5'] content_losses=[] style_losses=[] model=nn.Sequential() if use_cuda: model=model.cuda() i=1 for layer in list(cnn): if isinstance(layer,nn.Conv2d): name='conv_'+str(i) model.add_module(name,layer) if name in content_layers: target=model(content_img).clone() content_loss=ContentLoss(target,content_weight) content_loss=content_loss.cuda() if use_cuda else content_loss model.add_module('content_loss'+str(i),content_loss) content_losses.append(content_loss) if name in style_layers: target_feature=model(style_img).clone() target_feature=target_feature.cuda() if use_cuda else target_feature target_feature_gram=Gram(target_feature) style_loss=StyleLoss(target_feature_gram,style_weight) style_loss=style_loss.cuda() if use_cuda else style_loss model.add_module("style_loss"+str(i),style_loss) style_losses.append(style_loss) if isinstance(layer,nn.ReLU): name='relu'+str(i) model.add_module(name,layer) i+=1 if isinstance(layer,nn.MaxPool2d): name="pool"+str(i) model.add_module(name,layer) input_img=Variable(torch.randn(content_img.data.size())) if use_cuda: input_img=input_img.cuda() content_img=content_img.cuda() style_img=style_img.cuda() plt.figure() imshow(input_img.data,title='Input Image')
求助Tensorflow下遇到Cuda compute capability问题
在Python下装了tensorflow-gpu,其中cuda为cuda_8.0.61_windows,cudnn为cudnn-8.0-windows7-x64-v5.1,安装没有问题,可以正常跑起来,但是在跑mnist手写体数据集时遇到以下问题: I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:948] Ignoring visible gpu device (device: 0, name: GeForce GT 630M, pci bus id: 0000:01:00.0) with Cuda compute capability 2.1. The minimum required Cuda capability is 3.0. 究其原因是显卡不支持Cuda compute capability 3.0,看到网上caffe中此类问题的解决方法是在Makefile.config中注释掉USE_CUDNN,请问,哪位大神知道Tensorflow中如何解决这一问题呢?谢谢!_
关于CUDA共享内存的使用
共享内存是定义在kernel函数里面还是外面? 我下面有一个类似图像直方图统计功能的内核函数,每个线程对应一个像素点。 如果不使用共享内存是这样的: ``` atomicAdd(&gpu_EO_0_stats_pix_count[catagory_row_id*LCU_total + LCU_id_ab], 1); atomicAdd(&gpu_EO_0_stats_E[catagory_row_id*LCU_total + LCU_id_ab], e); ``` 现在我希望使用共享内存,对共享内存原子写,在将最后结果汇聚到全局内存: ``` __shared__ stats_count shared_count[CATA_NUM]; __shared__ stats_E shared_E[CATA_NUM]; __syncthreads(); atomicAdd(&shared_count[catagory_row_id], 1); atomicAdd(&shared_E[catagory_row_id], e); __syncthreads(); if (threadIdx.x == 0)//每个线程块的第一个线程 { atomicAdd(&gpu_EO_0_stats_pix_count[catagory_row_id*LCU_total + LCU_id_ab], shared_count[catagory_row_id]); atomicAdd(&gpu_EO_0_stats_E[catagory_row_id*LCU_total + LCU_id_ab], shared_E[catagory_row_id]); } ``` 但这样会出错,error code 77。 我想请问下出错的原因是什么?共享内存到底应该怎么定义和使用?
Windows下cuda和显卡版本都已经是最高了,为什么torch.cuda.is_available()还是等于False
Windows下cuda和显卡版本都已经是最高了,为什么torch.cuda.is_available()还是等于False
cupy.cuda.memory.OutOfMemoryError
请教: 训练lda2vec的时候 ``` gpu_id = int(os.getenv('CUDA_GPU', '0')) cuda.get_device(gpu_id).use() print("Using GPU " + str(gpu_id)) ``` ![图片说明](https://img-ask.csdn.net/upload/201911/28/1574907888_199167.png) 训练几十个epoch以后cupy.cuda.memory.OutOfMemoryError,然后又重头开始训练 ``` data = prepare_topics(cuda.to_cpu(model.mixture.weights.W.data).copy(), cuda.to_cpu(model.mixture.factors.W.data).copy(), cuda.to_cpu(model.sampler.W.data).copy(), words) ```
opencv+cuda关于GpuMat数据转递问题
萌新刚刚接触opencv+cuda不久,还不是很熟练,现在碰到了一个问题,不知道有没有大佬知道解决方法 实际问题中我想定义一个GpuMat类型的数组,例如cv::cuda::GpuMat cu_proj[10][128]; 然后传递给核函数的时候就显示如下错误 error : no suitable constructor exists to convert from "cv::cuda::GpuMat [10][128]" to "cv::cuda::PtrStepSz<uchar1>" 我网上搜到的都是单个GpuMat的传递,不知道我这种情况有没有解决方法呀?以及如果有,在核函数中应该怎么索引呢?我试过cu_proj[x][y](i, y),也显示错误: error : no operator "[]" matches these operands 感激不尽!
pytorch使用cuda报错RuntimeError: CUDA error: unknown error,如何解决?
具体情况如下 ![](https://img-ask.csdn.net/upload/201907/14/1563082013_251355.jpg) cuda可用但是把tensor放到gpu上就会报这个错 ``` import torch as t tensor=t.Tensor(3,4) tensor.cuda(0) ``` 按照类似问题https://ask.csdn.net/questions/767989所给的方法,检查了cuda版本,全局设置全局设置首选图形处理器为“高性能NVIDIA处理器” 但还是报错 显卡是gtx1050 按照网上方法运行cuda自带的deviceQuery.exe的结果 ![图片说明](https://img-ask.csdn.net/upload/201907/14/1563082410_614414.jpg) 求助! 更新7.14 13:56 代码 ``` import torch as t tensor=t.Tensor(3,4) tensor.cuda(0) ``` 在pycharm上运行就没有报错。。。 不知道为什么。。。
CMAKE里CUDA_SDK_ROOT_DIR怎么设置
Cmake Elastic Fusion Core时候提示NVCC参数数目错误 ![图片说明](https://img-ask.csdn.net/upload/201912/02/1575284685_856175.png) CAMKE里的CUDA_SDK_ROOT_DIR 默认是NOT FOUND 但是没找到CUDA的什么SDK,网上说和TOOK KIT一样的目录 然后我手动选了和TOOL KIT一样的目录 然后camake就会报错,求大神解答,CUDA_SDK_ROOT_DIR该怎么设置 ![图片说明](https://img-ask.csdn.net/upload/201912/02/1575284673_593245.png)
MFC框架下自定义类中定义多线程问题
本人尝试在MFC框架下自定义一个类,该类负责接收和解码视频数据,因此需要在该类中定义多线程来做这件事情,以防止在对话框调用该类的时候卡死。 目前本人在自定义类中使用了static的方式开启了多线程,在win10下运行也很正常。然而在测试兼容性的时候发现该程序在win7 64位下会出错,出错的原因似乎是因为我在类内使用了static函数定义了多线程,而我又声明了该类的几个实体,因此static函数出现了调用实体出错的问题。 想问问看: 1.有没有老哥遇到过这种问题? 2.有没有比较好的解决思路? 3.是不是不应该在一个类中用static函数的形式定义线程? 4.像多路接收解码的功能除了封装成一个类然后使用多个实体来做外,还有没有更好的封装方式? ``` class HWdecode { public: bool changertspurl = false;//是否改变rtsp的地址标志 bool reconnect = false;//需要断线重连标志 bool haveconnect = false;//正常连接标志位 CCriticalSection* mlock;//线程临界区 bool dodecodesave = false;//像素转换开启标志位 //参数对象 FFmpegDemuxer* demuxer = NULL;//FFMPEG对象 CUcontext cuContext;//Cuda设备 NvDecoder* dec = NULL;//Cuda解码对象 CUdeviceptr dpFrame = 0;//数据存储对象初始化 int hwinit()//显卡设备初始化 { int iGpu = 0;//选择解码播放的GPU,只有一个的话直接设置为0就行 //检测硬件GPU设备 ck(cuInit(0)); int nGpu = 0; ck(cuDeviceGetCount(&nGpu)); if (iGpu < 0 || iGpu >= nGpu) { std::cout << "没有相应的GPU" << std::endl; return 0; } //获得CUDA对象 CUdevice cuDevice = 0; ck(cuDeviceGet(&cuDevice, iGpu)); char szDeviceName[80]; ck(cuDeviceGetName(szDeviceName, sizeof(szDeviceName), cuDevice)); std::cout << "GPU in use: " << szDeviceName << std::endl; ck(cuCtxCreate(&cuContext, CU_CTX_SCHED_BLOCKING_SYNC, cuDevice)); return 1; } int ffmpeginit(char* url)//ffmpeg对象初始化 { demuxer = new FFmpegDemuxer(url); if (demuxer->fmtc == NULL) { return 0; } else { //RGBA帧存储显存初始化 return 1; } } void cudadecoderinit()//cuda解码对象初始化 { ck(cuMemAlloc(&dpFrame, demuxer->GetWidth() * demuxer->GetHeight() * 4)); //解码器初始化 dec = new NvDecoder(cuContext, (*demuxer).GetWidth(), (*demuxer).GetHeight(), true, FFmpeg2NvCodecId((*demuxer).GetVideoCodec())); } DWORD decAndshow()//解码和播放 { int nVideoBytes = 0, nFrameReturned = 0, nFrame = 0; uint8_t* pVideo = NULL, ** ppFrame; long bt = clock(); do { uint8_t* getdpframe = (uint8_t*)dpFrame; demuxer->Demux(&pVideo, &nVideoBytes);//获取一帧视频数据 dec->Decode(pVideo, nVideoBytes, &ppFrame, &nFrameReturned);//解码这一帧数据 //if (!nFrame && nFrameReturned) // LOG(INFO) << HWD.dec->GetVideoInfo(); if (dodecodesave) { for (int i = 0; i < nFrameReturned; i++) { mlock->Lock(); //对解码出来的图像数据类型做转换,转到BGRA printf("GetWidth %d\n", dec->GetWidth()); printf("GetHeight %d\n", dec->GetHeight()); if (dec->GetBitDepth() == 8) { if (dec->GetOutputFormat() == cudaVideoSurfaceFormat_YUV444) YUV444ToColor32<RGBA32>((uint8_t*)ppFrame[i], dec->GetWidth(), getdpframe, 4 * dec->GetWidth(), dec->GetWidth(), dec->GetHeight()); else // default assumed as NV12 Nv12ToColor32<RGBA32>((uint8_t*)ppFrame[i], dec->GetWidth(), getdpframe, 4 * dec->GetWidth(), dec->GetWidth(), dec->GetHeight()); } mlock->Unlock(); } } nFrame += nFrameReturned; } while (nVideoBytes && changertspurl == false); changertspurl = false;//将rtsp地址修改标志位重新设置为否 printf("退出,尝试断线连回\n"); reconnect = true; delete demuxer; std::cout << "Total frame decoded: " << nFrame << std::endl; std::cout << "花费时间:" << clock() - bt << "ms" << std::endl; std::cout << "FPS:" << nFrame / ((clock() - bt) / 1000.0) << std::endl; return 1; } HANDLE pRecvAndShowThread;//接收显示线程对象 static DWORD ThreadRtspRecvShowFun(LPVOID lpParam) { return ((HWdecode*)lpParam)->decAndshow();//调用线程的处理函数 } int Star(char* url, CCriticalSection * lock) { mlock = lock; if (!hwinit())//初始化硬件设备 { std::cout << "硬件初始化失败!" << std::endl; return 0; } if (!ffmpeginit(url))//初始化硬件设备 { std::cout << "无法连接码流!" << std::endl; return 0; } cudadecoderinit(); pRecvAndShowThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)HWdecode::ThreadRtspRecvShowFun, this, 0, NULL); return 1; } int ReStar(char* url, CCriticalSection* lock)//断线重连 { if (!ffmpeginit(url))//初始化硬件设备 { std::cout << "无法连接码流!" << std::endl; return 0; } if (!haveconnect) { cudadecoderinit(); } pRecvAndShowThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)HWdecode::ThreadRtspRecvShowFun, this, 0, NULL); return 1; } }; ```
关于学习cuda 共享内存的一个问题,想请假一下高手
我看的是英文版,讲共享内存的时候下面几句话不理解: 1. Shared memory is a bank-switched architecture 这个在搜索引擎没有搜索到,不知道bank-switched是一个怎样的架构。 2. 接上句On Femi is 32 banks wide, each bank of data is 4 bytes 前面书上有写femi架构上有48k的共享内存,这里又说femi有32个banks,每个bank有4 bytes一共才128 bytes啊,是怎么一个回事?
安装tensorflow-gpu后运行程序出现An error ocurred while starting the kernel问题
tensorflow2.0,cuda10.2,cudnn7.6,使用improt语句没有问题, 但是在执行model.add()语句时报错 2019-12-29 17:01:21.546770: F .\tensorflow/core/kernels/random_op_gpu.h:227] Non-OK-status: GpuLaunchKernel(FillPhiloxRandomKernelLaunch<Distribution>, num_blocks, block_size, 0, d.stream(), gen, data, size, dist) status: Internal: invalid device function 没有找到合适的解决方法,在此求助!感谢!
PyTorch-YOLOv3 WIN10 笔记本 如何设置独显训练?
![图片说明](https://img-ask.csdn.net/upload/202001/12/1578824662_261179.png) 报错信息 RuntimeError: CUDA out of memory. Tried to allocate 14.00 MiB (GPU 0; 6.00 GiB total capacity; 4.41 GiB already allocated; 3.14 MiB free; 213.18 MiB cached) GPU 0是核显 GPU 1是独显
linux下使用pytorch框架出现cuda run out of memory问题
1.使用pytorch,数据量是图像224x224,总共4w张,框架使用的是VGG,出现cuda memory问题 ![图片说明](https://img-ask.csdn.net/upload/201904/12/1555035289_282502.png) 上图是gpu使用的情况,运行时使用的batch_size为32 显存问题怎么解决呢? 求大神指点指点,实在不知道怎么解决了。。。
/usr/bin/ld: cannot find -lOPTIONS 无法找到OPTIONS库。
我在UBUNTU 18.04 下用CUDA 10.2 和 C++11标准编译一个较大的工程。 Makefile 是用CMAKE文件生成的。当我在terminal完成编译时显示了如下错误: ``` /usr/bin/ld: cannot find -lOPTIONS collect2: error: ld returned 1 exit status CMakeFiles/cuda_othermain.dir/build.make:132: recipe for target 'bin/cuda_othermain' failed make[2]: *** [bin/cuda_othermain] Error 1 CMakeFiles/Makefile2:79: recipe for target 'CMakeFiles/cuda_othermain.dir/all' failed make[1]: *** [CMakeFiles/cuda_othermain.dir/all] Error 2 Makefile:83: recipe for target 'all' failed make: *** [all] Error 2 ``` 提示是找不到一个叫OPTIONS的库。我的camke和源码里都没有链接这个库,而且我在网上搜索也根本没有一个库叫做OPTIONS。我很疑惑,编译工程时没有显示任何其他错误,顶多就是有几个warning,我查了一下都是没有太大关系的。所以现在没有什么思路去解决这个问题。 所以想请教一下各位有没有什么解决思路。 CMAKE文件如下: ``` cmake_minimum_required (VERSION 3.8 FATAL_ERROR) #project (cusam_cuda) project(cusam_cuda LANGUAGES C CXX CUDA) find_package(CUDA 10.2 REQUIRED) set(CUDA_NVCC_FLAGS -std=c++11 -L/usr/local/cuda-10.2/lib64 -lcudart -lcuda) set(CMAKE_CXX_STANDARD 11) if (CUDA_VERBOSE_PTXAS) set(VERBOSE_PTXAS --ptxas-options=-v) endif (CUDA_VERBOSE_PTXAS) #set(CMAKE_BUILD_TYPE "Release") set(CMAKE_BUILD_TYPE "Debug") SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CUDA_NVCC_FLAGS} -O0 -Wall -g -ggdb") SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CUDA_NVCC_FLAGS} -O3 -Wall") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) set(GENCODE_SM30 -gencode=arch=compute_30,code=sm_30 -gencode=arch=compute_30,code=compute_30) set(GENCODE_SM35 -gencode=arch=compute_35,code=sm_35 -gencode=arch=compute_35,code=compute_35) set(GENCODE_SM37 -gencode=arch=compute_37,code=sm_37 -gencode=arch=compute_37,code=compute_37) set(GENCODE_SM50 -gencode=arch=compute_50,code=sm_50 -gencode=arch=compute_50,code=compute_50) set(GENCODE_SM60 -gencode=arch=compute_60,code=sm_60 -gencode=arch=compute_60,code=compute_60) set(GENCODE_SM61 -gencode=arch=compute_61,code=sm_61 -gencode=arch=compute_61,code=compute_61) set(GENCODE_SM70 -gencode=arch=compute_70,code=sm_70 -gencode=arch=compute_70,code=compute_70) set(GENCODE_SM71 -gencode=arch=compute_71,code=sm_71 -gencode=arch=compute_71,code=compute_71) set(GENCODE_SM75 -gencode=arch=compute_75,code=sm_75 -gencode=arch=compute_75,code=compute_75) option(CUDAMATRIX_GENCODE_SM30 "GENCODE_SM30" OFF) option(CUDAMATRIX_GENCODE_SM35 "GENCODE_SM35" ON) option(CUDAMATRIX_GENCODE_SM37 "GENCODE_SM37" OFF) option(CUDAMATRIX_GENCODE_SM50 "GENCODE_SM50" OFF) option(CUDAMATRIX_GENCODE_SM60 "GENCODE_SM60" OFF) option(CUDAMATRIX_GENCODE_SM61 "GENCODE_SM61" OFF) option(CUDAMATRIX_GENCODE_SM70 "GENCODE_SM70" OFF) option(CUDAMATRIX_GENCODE_SM71 "GENCODE_SM71" OFF) option(CUDAMATRIX_GENCODE_SM75 "GENCODE_SM75" OFF) if (CUDAMATRIX_GENCODE_SM37) set(GENCODE ${GENCODE} ${GENCODE_SM37}) endif(CUDAMATRIX_GENCODE_SM37) if (CUDAMATRIX_GENCODE_SM50) set(GENCODE ${GENCODE} ${GENCODE_SM50}) endif(CUDAMATRIX_GENCODE_SM50) if (CUDAMATRIX_GENCODE_SM60) set(GENCODE ${GENCODE} ${GENCODE_SM60}) endif(CUDAMATRIX_GENCODE_SM60) if (CUDAMATRIX_GENCODE_SM61) set(GENCODE ${GENCODE} ${GENCODE_SM61}) endif(CUDAMATRIX_GENCODE_SM61) if (CUDAMATRIX_GENCODE_SM70) set(GENCODE ${GENCODE} ${GENCODE_SM70}) endif(CUDAMATRIX_GENCODE_SM70) if(CUDAMATRIX_GENCODE_SM71) set(GENCODE ${GENCODE} ${GENCODE_SM71}) endif(CUDAMATRIX_GENCODE_SM71) if(CUDAMATRIX_GENCODE_SM75) set(GENCODE ${GENCODE} ${GENCODE_SM75}) endif(CUDAMATRIX_GENCODE_SM75) include_directories(/usr/local/cuda/include) include_directories(utils) #include_directories(3rdparty/googletest/googletest) #include_directories(3rdparty/googletest/googletest/include) #add_subdirectory(3rdparty/googletest/googletest googletest.out) add_subdirectory(geometry) add_subdirectory(navigation) add_subdirectory(3rdparty) add_subdirectory(nonlinear) add_subdirectory(inference) add_subdirectory(mat) add_subdirectory(miniblas) add_subdirectory(miniblas/cblas) add_subdirectory(miniblas/blas) add_subdirectory(miniblas/permutation) add_subdirectory(miniblas/sys) add_subdirectory(miniblas/linalg) add_subdirectory(linear) #add_subdirectory(test) #cuda_add_executable(imukittiexamplegps_gaussiannewton imukittiexamplegps_gaussiannewton.cpp # OPTIONS ${GENCODE} ${CUDA_VERBOSE_PTXAS}) #target_link_libraries(imukittiexamplegps_gaussiannewton geometry miniblas blas cblas linalg permutation sys navigation 3rdparty linear nonlinear inference mat) #cuda_add_executable(othermain othermain.cpp # OPTIONS ${GENCODE} ${CUDA_VERBOSE_PTXAS}) #target_link_libraries(othermain geometry miniblas blas cblas linalg permutation sys navigation 3rdparty linear nonlinear inference mat) target_compile_features(nonlinear PUBLIC cxx_std_11) cuda_add_executable(cuda_othermain cuda_othermain.cu OPTIONS ${GENCODE} ${CUDA_VERBOSE_PTXAS}) target_compile_features(cuda_othermain PUBLIC cxx_std_11) set_target_properties(cuda_othermain PROPERTIES CUDA_SEPARABLE_COMPILATION ON) target_link_libraries(cuda_othermain geometry miniblas blas cblas linalg permutation sys navigation 3rdparty linear nonlinear inference mat) ``` 源代码就没发帖了,因为工程还算比较大。有劳各位了。
130 个相见恨晚的超实用网站,一次性分享出来
文末没有公众号,只求 点赞 + 关注 搞学习 知乎:www.zhihu.com 大学资源网:http://www.dxzy163.com/ 简答题:http://www.jiandati.com/ 网易公开课:https://open.163.com/ted/ 网易云课堂:https://study.163.com/ 中国大学MOOC:www.icourse163.org 网易云课堂:stu
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私有的数
win10系统安装教程(U盘PE+UEFI安装)
一、准备工作 u盘,电脑一台,win10原版镜像(msdn官网) 二、下载wepe工具箱  极力推荐微pe(微pe官方下载) 下载64位的win10 pe,使用工具箱制作启动U盘打开软件,   选择安装到U盘(按照操作无需更改) 三、重启进入pe系统   1、关机后,将U盘插入电脑 2、按下电源后,按住F12进入启动项选择(技嘉主板是F12)     选择需要启
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、PDF搜索网站推荐 对于大部
C语言魔塔游戏
很早就很想写这个,今天终于写完了。 游戏截图: 编译环境: VS2017 游戏需要一些图片,如果有想要的或者对游戏有什么看法的可以加我的QQ 2985486630 讨论,如果暂时没有回应,可以在博客下方留言,到时候我会看到。 下面我来介绍一下游戏的主要功能和实现方式 首先是玩家的定义,使用结构体,这个名字是可以自己改变的 struct gamerole { char n
java源码分析 Arrays.asList()与Collections.unmodifiableList()
举个栗子 本章示例代码来自java编程思想——17.4.1未获支持的操作——Unsupported类。 import java.util.*; public class Unsupported { static void test(String msg, List&lt;String&gt; list) { System.out.println("--- " + msg
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
Java学习笔记(七十二)—— Cookie
概述 会话技术: 会话:一次会话中包含多次请求和响应 一次会话:浏览器第一次给服务器发送资源请求,会话建立,直到有一方断开为止 功能:在一次会话的范围内的多次请求间,共享数据 方式: 客户端会话技术:Cookie,把数据存储到客户端 服务器端会话技术:Session,把数据存储到服务器端 Cookie 概念:客户端会话技术,将数据存储到客户端 快速入门: 使用步骤: 创建C
程序员写了一个新手都写不出的低级bug,被骂惨了。
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前前言 为啥今天有个前前言呢? 因为你们的丙丙啊,昨天有牌面了哟,直接被微信官方推荐,知乎推荐,也就仅仅是还行吧(心里乐开花)
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆  每天早上8:30推送 作者| Mr.K   编辑| Emma 来源| 技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯
程序员该看的几部电影
##1、骇客帝国(1999) 概念:在线/离线,递归,循环,矩阵等 剧情简介: 不久的将来,网络黑客尼奥对这个看似正常的现实世界产生了怀疑。 他结识了黑客崔妮蒂,并见到了黑客组织的首领墨菲斯。 墨菲斯告诉他,现实世界其实是由一个名叫“母体”的计算机人工智能系统控制,人们就像他们饲养的动物,没有自由和思想,而尼奥就是能够拯救人类的救世主。 可是,救赎之路从来都不会一帆风顺,到底哪里才是真实的世界?
蓝桥杯知识点汇总:基础知识和常用算法
文章目录JAVA基础语法:算法竞赛常用的JAVA API:基础算法待更: 此系列包含蓝桥杯所考察的绝大部分知识点,一共有基础语法,常用API,基础算法和数据结构,和往年真题四部分,虽然语言以JAVA为主,但算法部分是相通的,C++组的小伙伴也可以看哦。所有文章的链接都会在此公布,还有很多没有更新,会持续更新,如果大佬发现文章有错误的地方请指正,我会十分感谢。另外,有什么问题可私信我~ JAVA基础
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布了 2019年国民经济报告 ,报告中指出:年末中国大陆总人口(包括31个
实现简单的轮播图(单张图片、多张图片)
前言 刚学js没多久,这篇博客就当做记录了,以后还会完善的,希望大佬们多多指点。ps:下面出现的都是直接闪动,没有滑动效果的轮播图。 单张图片的替换 原理 1.将几张图片叠在一起,通过改变"display:block"和"display:none"这两个属性实现替换。 (前提:在css中给所有图片加上display:none属性) 2.不用将图片叠在一起,将一个div当做"窗口",通过"of
强烈推荐10本程序员在家读的书
很遗憾,这个鼠年春节注定是刻骨铭心的,新型冠状病毒让每个人的神经都是紧绷的。那些处在武汉的白衣天使们,尤其值得我们的尊敬。而我们这些窝在家里的程序员,能不外出就不外出,就是对社会做出的最大的贡献。 有些读者私下问我,窝了几天,有点颓丧,能否推荐几本书在家里看看。我花了一天的时间,挑选了 10 本我最喜欢的书,你可以挑选感兴趣的来读一读。读书不仅可以平复恐惧的压力,还可以对未来充满希望,毕竟苦难终
Linux自学篇——linux命令英文全称及解释
man: Manual 意思是手册,可以用这个命令查询其他命令的用法。 pwd:Print working directory 显示当前目录 su:Swith user 切换用户,切换到root用户 cd:Change directory 切换目录 ls:List files 列出目录下的文件 ps:Process Status 进程状态 mk
Python实战:抓肺炎疫情实时数据,画2019-nCoV疫情地图
文章目录1. 前言2. 数据下载3. 数据处理4. 数据可视化 1. 前言 今天,群里白垩老师问如何用python画武汉肺炎疫情地图。白垩老师是研究海洋生态与地球生物的学者,国家重点实验室成员,于不惑之年学习python,实为我等学习楷模。先前我并没有关注武汉肺炎的具体数据,也没有画过类似的数据分布图。于是就拿了两个小时,专门研究了一下,遂成此文。 2月6日追记:本文发布后,腾讯的数据源多次变更u
智力题(程序员面试经典)
NO.1  有20瓶药丸,其中19瓶装有1克/粒的药丸,余下一瓶装有1.1克/粒的药丸。给你一台称重精准的天平,怎么找出比较重的那瓶药丸?天平只能用一次。 解法 有时候,严格的限制条件有可能反倒是解题的线索。在这个问题中,限制条件是天平只能用一次。 因为天平只能用一次,我们也得以知道一个有趣的事实:一次必须同时称很多药丸,其实更准确地说,是必须从19瓶拿出药丸进行称重。否则,如果跳过两瓶或更多瓶药
Java与Python学习通法(1)和(2)序言和编程语言发展史怎么学
大家好,我是 jacky 朱元禄,很高兴跟大家一起学习 《Java与Python学习通法系列》。 首先,说一下,我为什么要录这个课; 我们都已经知道Java 和 Python的视频教程和书籍,可以说是非常非常多了,那我录制本系列课的意义是什么呢? (1)课程特色一:我想告诉大家学习编程语言是有捷径的,这个捷径就是 理解技术背后的“哲学逻辑”,或者说是“人文逻辑”,相信你听完 jack
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
阿里架构师花近十年时间整理出来的Java核心知识pdf(Java岗)
由于细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容! 整理了一份Java核心知识点。覆盖了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。       欢迎大家加入java学习交流社区  点击加入   可获取文中文档       小编推荐:     
Python基础知识点梳理
python基础知识点梳理 摘要: 本文主要介绍一些平时经常会用到的python基础知识点,用于加深印象,也算是对于学习这门语言的一个总结与回顾。python的详细语法介绍可以查看官方编程手册,也有一些在线网站对python语法进行了比较全面的介绍,比如菜鸟教程: python3 教程|菜鸟教程 为了方便聚焦知识点,本文涉及的操作实例并不多,想学好一门语言关键还得自己多编码多实践。 python语
2020年2月全国程序员工资统计,平均工资13716元
趋势 2020年2月,中国大陆程序员平均工资13716元,比上个月增加。具体趋势如图: 各主要程序员城市工资变化 城市 北京,上海,深圳,杭州,广州四地的工资最高。 city 平均工资 最低工资 中位数 最高工资 招聘人数 百分比 北京 18098 3750 15000 45000 20529 9.53% 深圳 16903 5750 15000 37500 30941 14
Java坑人面试题系列: 包装类(中级难度)
Java Magazine上面有一个专门坑人的面试题系列: https://blogs.oracle.com/javamagazine/quiz-2。 这些问题的设计宗旨,主要是测试面试者对Java语言的了解程度,而不是为了用弯弯绕绕的手段把面试者搞蒙。 如果你看过往期的问题,就会发现每一个都不简单。 这些试题模拟了认证考试中的一些难题。 而 “中级(intermediate)” 和 “高级(ad
为什么说程序员做外包没前途?
之前做过不到3个月的外包,2020的第一天就被释放了,2019年还剩1天,我从外包公司离职了。我就谈谈我个人的看法吧。首先我们定义一下什么是有前途 稳定的工作环境 不错的收入 能够在项目中不断提升自己的技能(ps:非技术上的认知也算) 找下家的时候能找到一份工资更高的工作 如果你目前还年轻,但高不成低不就,只有外包offer,那请往下看。 外包公司你应该
相关热词 c# 为空 判断 委托 c#记事本颜色 c# 系统默认声音 js中调用c#方法参数 c#引入dll文件报错 c#根据名称实例化 c#从邮件服务器获取邮件 c# 保存文件夹 c#代码打包引用 c# 压缩效率
立即提问