请原谅这个问题的广泛性.也许一旦我知道更多,也许我可以更具体地问.
我有性能敏感的tensorflow代码.从对gpu编程知之甚少的人的角度来看,我想知道哪些指南或策略是优化我的代码的"好开始".(单个gpu)
或许甚至可以读出每个张量流操作花了多长时间...
我有一个模糊的理解
可能还有其他常见因素在起作用,我不知道..
我是Ubuntu和GPU的新手,最近在我们的实验室中使用了带有Ubuntu 16.04和4个NVIDIA 1080ti GPU的新PC.该机器还配备了i7 16核心处理器.
我有一些基本问题:
为GPU安装了Tensorflow.那么我认为它会自动优先考虑GPU的使用情况?如果是这样,它是否一起使用全部4或者是否使用1然后在需要时再招募另一个?
我可以在模型训练期间实时监控GPU使用/活动吗?
我完全理解这是基本的硬件,但对这些具体问题的明确答案将是很好的.
编辑:
根据这个输出 - 这真的说我的每个GPU上的几乎所有内存都被使用了吗?
究竟什么是与PowerVR SGX卡中的纹理内存相关的"共享内存".没有与此相关的正确文档.
通常对于iPhone上的应用程序(假设3gs/ipad PowerVR SGX卡),它限制为使用24MB.即使我加载了大约64mb的纹理,它也会加载.然后它为什么称为共享内存!对此真的很困惑.指向整个建筑的指针也很受欢迎.谢谢.
高斯,框,径向,方向,运动模糊,变焦模糊等
我读到高斯模糊可以在可以在像素着色器中实现的通道中分解,但是找不到任何样本.
假设任何与自身以外的像素有关的效果都无法在像素着色器中实现,这是正确的吗?
我正在尝试在实时3D建模中优化应用程序.应用程序的计算部分几乎完全在CUDA中的GPU上运行.该应用需要小(6x6)双精度对称正定线性系统的解决方案Ax = b每秒500+次.目前,这是正在使用基于乔莱斯基线性代数库的高效CPU完成,但必要数据从CPU复制 - GPU和回GPU每秒数百和内核的开销次,每次启动等.
如何在GPU上计算线性系统的解决方案,而无需将数据全部输入CPU?我已经阅读了一些关于MAGMA库的内容,但它似乎使用混合算法而不是仅GPU算法.
我已经准备好了,GPU上的单个线性系统的解决方案将比现有的基于CPU的库慢得多,但我想看看是否可以通过删除之间的数据通信来弥补这一点.主机和设备以及内核启动的开销等每秒数百次.如果没有GPU只有类似LAPACK的替代方案,我将如何在GPU上实现一些解决这个特定的6x6案例?如果没有GPU BLAS库的大量时间投资,可以做到吗?
我已经阅读了一些关于GPGPU的"持久线程"的论文,但我并不是真的理解它.任何人都可以给我一个例子或向我展示这种编程方式的用途吗?
在阅读和搜索"持久线程"之后,我在脑海中留下了什么:
Presistent Threads它只不过是一个while循环,它可以保持线程运行并计算大量的工作.
它是否正确?提前致谢
参考:http ://www.idav.ucdavis.edu/publications/print_pub?pub_id = 1089 http://developer.download.nvidia.com/GTC/PDF/GTC2012/PresentationPDF/S0157-GTC2012-Persistent-Threads-Computing .PDF
当训练两个不同神经网络中的一个时,一个用Tensorflow,另一个用Theano,有时候经过一段随机的时间(可能是几个小时或几分钟,大多数几个小时),执行冻结,我得到这个消息运行"nvidia-smi":
"无法确定GPU 0000:02:00.0的设备句柄:GPU丢失.重新启动系统以恢复此GPU"
我正在与:
我不确定如何处理这个问题,有人可以提出一些可能导致这种情况以及如何诊断/解决此问题的建议吗?
gpu ×10
gpgpu ×3
nvidia ×3
opencl ×3
cuda ×2
performance ×2
tensorflow ×2
algorithm ×1
architecture ×1
cpu ×1
cudnn ×1
glsl ×1
graphics ×1
hlsl ×1
ios ×1
iphone ×1
keyword ×1
opengl-es ×1
pid ×1
pixel-shader ×1
python ×1
shader ×1
solver ×1
theano-cuda ×1