小编Ale*_*lex的帖子

我可以在我的代码中使用 nVidia Quadro KxxxxM (MXM) 移动 GPU 的共享内存吗?

正如我所看到的,在Google 和许多网站上, nVidia Quadro KXXXXM - 移动 GPU (MXM)都有“共享内存:否” 。

但如果我想为这些卡编写 CUDA C/C++,我可以在代码中使用共享内存吗?如果我可以,那么如果我这样做会发生什么 - 它会使用全局 GPU-RAM 吗?

cuda gpu gpgpu nvidia gpu-shared-memory

1
推荐指数
1
解决办法
817
查看次数

是否可以通过新CUDA6中的简单指针从CPU-Cores访问GPU-RAM?

现在,如果我使用此代码尝试在GeForce GTX460SE(CC2.1)中使用CUDA5.5从CPU-Cores访问GPU-RAM,那么我会收到异常"访问冲突":

#include "cuda_runtime.h"
#include "device_launch_parameters.h"

#include <iostream>

int main()
{
    unsigned char* gpu_ptr = NULL;
    cudaMalloc((void **)&gpu_ptr, 1024*1024);

    *gpu_ptr = 1;

    int q; std::cin >> q;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但我们知道,有UVA(统一虚拟寻址).还有一些新的:

是否可以通过使用新CUDA6中的简单指针从CPU-Cores访问内存GPU-RAM?

cuda gpgpu nvidia virtual-address-space

1
推荐指数
1
解决办法
2511
查看次数

对象WMA(虚拟内存区域:)和PTE(页面表项)之间有什么区别?

对象WMA(虚拟内存区域struct vm_area_struct,用于操作内核Linux)和PTE(用于操作MMU的页面表条目)之间的区别是什么,以及为什么我们需要WMA而没有足够的PTE?

c linux posix memory-management linux-kernel

1
推荐指数
1
解决办法
1045
查看次数

使用CUDA6.5 + MPI时是否必须使用MPS(多处理服务)?

通过以下链接编写:https://docs.nvidia.com/deploy/pdf/CUDA_Multi_Process_Service_Overview.pdf

1.1.乍看上去

1.1.1.MPS

多进程服务(MPS)是CUDA应用程序编程接口(API)的替代二进制兼容实现.MPS运行时架构旨在透明地启用协作式多进程CUDA应用程序(通常为MPI作业),以在最新的NVIDIA(基于Kepler的)Tesla和Quadro GPU上使用Hyper-Q功能.Hyper-Q允许在同一GPU上同时处理CUDA内核; 当GPU计算容量未被单个应用程序进程利用时,这可以提高性能.

  1. 使用CUDA6.5 + MPI(OpenMPI/IntelMPI)时是否必须使用MPS(多进程服务),或者我可以使用MPS而丢失一些性能但没有任何错误?

  2. 如果我使用MPS,是否意味着单个服务器上的所有MPI进程将在单个GPU卡上顺序执行(而非并发)GPU内核函数,但所有其他行为将保持不变?

cuda gpgpu nvidia mpi multi-gpu

1
推荐指数
1
解决办法
2844
查看次数

1个CUDA核可以处理每个时钟超过1个浮点指令(Maxwell)吗?

Nvidia GPU列表 - GeForce 900系列 - 有写道:

4单精度性能计算为着色器数量乘以基本核心时钟速度的2倍.

例如,对于GeForce GTX 970,我们可以计算性能:

1664核心*1050 MHz*2 = 3 494 GFlops峰值(3 494 400 MFlops)

我们可以在列中看到这个值 - 处理能力(峰值)GFLOPS - 单精度.

但为什么我们必须乘以2

写道:http://devblogs.nvidia.com/parallelforall/maxwell-most-advanced-cuda-gpu-ever-made/

SMM使用基于象限的设计,具有四个32核处理模块,每个模块具有专用的warp调度程序,能够在每个时钟发送两条指令.

好的,nVidia Maxwell是超标量体系结构,每个时钟发送两条指令,但是1个CUDA内核(FP32-ALU)每个时钟可以处理多于1条指令吗?

我们知道1个CUDA-Core包含两个单元:FP32-unit和INT-unit.但INT-unit与GFlops(每秒浮点运算)无关.

即一个SMM包含:

  • 128 FP32单元
  • 128 INT单位
  • 32 SFU-unit
  • 32 LD/ST单元

要获得GFlops的性能,我们应该只使用:128个FP32单元和32个SFU单元.

即如果我们同时使用128个FP32单元和32个SFU单元,那么我们可以获得160个指令,每个SM每个时钟具有浮点运算.

也就是说,我们必须通过1,2 =(160/132)的instad为2.

1664核心*1050 MHz*1,2 = 2 096 GFlops峰值

为什么在wiki中写入我们必须多个核心*MHz乘2?

在此输入图像描述

在此输入图像描述

benchmarking cuda gpgpu nvidia maxwell

1
推荐指数
1
解决办法
2533
查看次数

如何在OpenCV中使用Umat执行OpenCL代码时如何更改设备?

众所周知,OpenCV 3.0支持新类cv::Umat,它提供透明API(TAPI)以自动使用OpenCL,如果它可以:http://code.opencv.org/projects/opencv/wiki/Opencv3#tapi

cv::UmatTAPI 有两个简介:

但如果我有:

  1. Intel CPU Core i5(Haswell)4xCores(OpenCL Intel CPU,支持SSE 4.1,SSE 4.2或AVX)
  2. 英特尔集成高清显卡,支持OpenCL 1.2
  3. 第一款支持OpenCL 1.2 和CUDA的nVidia GPU GeForce GTX 970(Maxwell)
  4. 第二款nVidia GPU GeForce GTX 970 ......

如果我在OpenCV中打开OpenCL,那么如何在OpenCL代码执行时更改设备:在8核CPU,集成高清显卡上,在第一个nVidia GPU或第二个nVidia GPU上?

如何选择这4个设备中的每个设备使用OpenCL进行并行执行算法cv::Umat

例如,如何在4xCore的CPU Core-i5上使用OpenCL加速cv::Umat

opencv x86-64 image-processing opencl opencv3.0

1
推荐指数
1
解决办法
3980
查看次数

在Kepler CC3.0/3.5,16或32(STREAM)上同时支持多少个内核?

我们知道Fermi仅支持与GPU的单一连接,如下所示:http://on-demand.gputechconf.com/gtc-express/2011/presentations/StreamsAndConcurrencyWebinar.pdf

Fermi架构可以同时支持

GPU上最多16个CUDA内核

正如我们所知,Hyper-Q允许来自多个CUDA流,MPI流程或流程中的线程的多达32个同时连接:http://www.nvidia.com/content/PDF/kepler/NVIDIA-Kepler-GK110-架构Whitepaper.pdf

但是在Kepler CC3.0/3.5,16或32(STREAM)上同时支持多少内核?

cuda gpgpu nvidia kepler

0
推荐指数
1
解决办法
264
查看次数

Linux bash-script在所有子目录中运行make

我正在尝试在Linux中编写一个遍历当前目录的bash脚本,并在每个子目录中启动现有的makefile.它应该适用于每个子目录,无论深度如何.

一些限制:

  • 我不能使用Python;
  • 我事先并不知道有多少个子目录及其名称;
  • 我事先并不知道当前目录的名称;
  • make只有在此类文件夹中有makefile时,才应启动每个目录的命令.

关于如何做的任何想法?

bash makefile

0
推荐指数
1
解决办法
1763
查看次数

Haswell双路径执行CPU?

Haswell现在有2个分支单位 - 如下所示:http://arstechnica.com/gadgets/2013/05/a-look-at-haswell/2/

在此输入图像描述

这是否意味着Haswell是双路径执行CPU?

在:http://ditec.um.es/~jlaragon/papers/aragon_ICS02.pdf

这是否意味着Haswell只能在整数ALU和Shift(端口6)上执行第二个分支,而不能在其他端口上的任何其他ALU上执行?

x86 x86-64 intel cpu-architecture branch-prediction

0
推荐指数
1
解决办法
470
查看次数

英特尔 IPP 是否支持任何支持 OpenGL 的 GPU?

正如这里所说,OpenCV 使用 IPP,而 IPP 使用 GPU:

\n\n
\n

原来 OpenCV 正在使用 IPP,而 IPP 本身现在也可以使用 GPU\n。

\n\n

以防万一其他人在 google 上搜索“opencv gpu 速度较慢”并且不知道\n IPP GPU 支持;)

\n
\n\n

另外,我发现了这个

\n\n
\n

使用Intel\xc2\xae IPP异步优化增强现实管道

\n\n

使用 Intel\xc2\xae GPU优化 Total Immersion 的 D\'Fusion* 增强现实管道的性能和功耗

\n
\n\n

而且没有一个关键字:OpenCL、OpenACC、CUDA、nVidia,...

\n\n

与GPU相关的关键字只有一个:OpenGL

\n\n

这是否意味着Intel IPP仅支持Intel GPU?或者 Intel IPP 支持任何支持 OpenGL 的 GPU(nVidia GeForce、AMD Radeon)?

\n

opengl opencv opencl intel-ipp

-1
推荐指数
1
解决办法
874
查看次数