标签: nvidia

如何从NVidia Visual Profiler(nvvp)导出数据?

我有一个奇怪的时间从我在Linux上的应用程序的分析代码中读取,所以我决定通过NVidia Visual Profiler运行它.然而,在工具包4.1上,他们决定删除Compute Visual Profiler以引入nvvp.我需要处理程序之外的数据,nvvp不能做的是平均值,偏差,置信度和大量统计数据.问题是nvvp中没有导出功能,Compute Visual Profiler至少可以让你导出到CSV.是否有解决方案而不是安装4.0工具包?

谢谢

profiling nvidia

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

CUDA 2.1"错误:未知类型名称'size_t'"

系统:Ubuntu 11.10 x86_64 CUDA:v 2.1

当尝试制作像matrixMul这样的示例程序时,我会收到大量错误,其中大部分是"未知类型名称'size_t'." 我已经确保将/ usr/local/cuda/bin放在我的PATH中,将/ usr/local/cuda/lib放在/etc/ld.so.conf.d中的.conf中.

有什么想法我为什么会收到这些错误?

matrixMul$ make emu=1
In file included from /tmp/tmpxft_00004089_00000000-1_matrixMul.cudafe1.stub.c:5:0,
                 from matrixMul.cu:196:
/usr/local/cuda//bin/../include/crt/host_runtime.h:192:0: warning: "__device_fun" redefined [enabled by default]
/usr/local/cuda//bin/../include/crt/host_runtime.h:215:0: note: this is the location of the previous definition
/usr/local/cuda//bin/../include/crt/host_runtime.h:194:0: warning: "__device_var" redefined [enabled by default]
/usr/local/cuda//bin/../include/crt/host_runtime.h:217:0: note: this is the location of the previous definition
/usr/local/cuda//bin/../include/crt/host_runtime.h:196:0: warning: "__tex_var" redefined [enabled by default]
/usr/local/cuda//bin/../include/crt/host_runtime.h:219:0: note: this is the location of the previous definition
/usr/local/cuda//bin/../include/crt/host_runtime.h:198:0: warning: "__cudaFatCubin" redefined [enabled by default]
/usr/local/cuda//bin/../include/crt/host_runtime.h:221:0: note: …
Run Code Online (Sandbox Code Playgroud)

ubuntu cuda nvidia size-t nvcc

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

使用C++模板分配CUDA设备内存时发出警告

我已声明以下模板以缩短代码:

template <typename T>
void allocateGPUSpace(T* ptr, int size){

    cudaMalloc((void**)&ptr,size * sizeof(T));
}
Run Code Online (Sandbox Code Playgroud)

而且,我使用模板如下:

float* alphaWiMinusOne;

allocateGPUSpace<float>( alphaWiMinusOne,numUnigrams);

但是,当我编译代码时,VS 2008会发出警告

 warning: variable "alphaWiMinusOne" is used before its value is set
Run Code Online (Sandbox Code Playgroud)

uninitialized local variable 'alphaWiMinusOne' used
Run Code Online (Sandbox Code Playgroud)

cuda不理解C++中的模板吗?天哪,这对于nvidia来说是必须的

templates cuda nvidia

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

无法在启用 ECC 的 NVIDIA 设备上创建上下文

在具有 4 个 NVIDIA GPU 的节点上,我在设备 0 上启用了 ECC 内存保护(所有其他都禁用了 ECC)。由于我在设备 0 上启用了 ECC,我的应用程序(CUDA,仅使用一个设备)在尝试在此设备 0(驱动程序 API)上创建上下文时挂起。我不知道为什么它在那一刻挂起。如果我根据另一台设备使用不同的设备设置 CUDA_VISIBLE_DEVICE 它工作正常。它必须与启用 ECC 有关。有什么想法吗?这里的输出nvidia-smi:(为什么它报告 99% 不稳定的 GPU 利用率,那里什么都没有运行?)

+------------------------------------------------------+                       
| NVIDIA-SMI 4.304.54   Driver Version: 304.54         |                       
|-------------------------------+----------------------+----------------------+
| GPU  Name                     | Bus-Id        Disp.  | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap| Memory-Usage         | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla K20m               | 0000:02:00.0     Off |                    1 |
| N/A   29C    P0    49W / 225W |   0%   12MB / 4799MB …
Run Code Online (Sandbox Code Playgroud)

cuda nvidia cuda-context

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

在CUDA中查找最大/最小值而不将其传递给CPU

我需要找到浮点数组中最大元素的索引.我正在使用函数"cublasIsamax",但这会将索引返回给CPU,这会减慢应用程序的运行时间.

有没有办法有效地计算这个索引并将其存储在GPU中?

谢谢!

parallel-processing cuda nvidia cublas

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

使用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
查看次数

在 CUDA 中管理占用

早上好。

我开始学习 cuda 编程,我正在学习性能。我在 CUDA 网站上读到,要获得良好的性能,我们应该考虑四件事:

http://docs.nvidia.com/gameworks/content/developertools/desktop/analysis/report/cudaexperiments/kernellevel/achievedoccupancy.htm

-每个 SM 的扭曲(系统多处理器) -每个 SM 的块数 -每个 SM 的注册 -每个 SM 的共享内存

所以我要重温第一件事,并且根据 GPU,我根据每个 SM 的最大扭曲和每个 SM 的块定义了内核的尺寸。我的任务是执行一亿次求和来衡量哪种方法更好。

我所做的是一个 for 循环,在该循环中,我在每次迭代时启动一个内核,以最大化占用率。例如,对于 NVidia 1080 GPU,我读到:

int max_blocks = 32; //maximum number of active blocks per SM int max_threads_per_Block = 64; //maximum number of active threads per SM int max_threads = 2048;

这为每个 SM 提供总共 2048 个线程并保证最大占用率。这个 GPU 可以有 64 个活动扭曲,每个扭曲有 32 个线程。在这个 GPU 中,一个活动块有 2 个扭曲,这意味着每个块一次可以有 64 个活动线程。有了这个,我按如下方式启动内核:

dim3 threadsPerBlock(max_threads_per_Block); dim3 numBlocks(max_blocks); VecAdd<<<numBlocks, threadsPerBlock>>>(d_A, …

c++ performance cuda gpu nvidia

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

如何确定我的GPU是否执行16/32/64位算术运算?

我正在尝试在Nvidia卡上找到本机算术运算的吞吐量。在页面上,Nvidia已记录了各种算术运算的吞吐量值。问题是如何确定我的卡是否进行16位或32位或64位操作,因为每个值都不相同?此外,我还想为我的卡计算这些指令的延迟值。有什么办法吗?就我的研究而言,它们没有像吞吐量那样得到记录。为此有一些基准套件吗?

谢谢!

c++ cuda latency nvidia

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

vulkan是否具有逻辑设备创建的最大数量限制?

我编写了以下代码来测试最大逻辑器件编号.

#include "vulkan/vulkan.hpp"
#include <cassert>
#include <vector>
#include <iostream>

int main() {

    std::vector<vk::Instance> instances;
    std::vector<vk::Device>   devices;

    try {

        for( ; true; ) {

            vk::InstanceCreateInfo instanceInfo {};
            instances.push_back( vk::createInstance( instanceInfo ) );

            auto physicalDevices = instances.back().enumeratePhysicalDevices();
            if( 0 == physicalDevices.size() )
                return 0;

            vk::DeviceQueueCreateInfo deviceQueueCreateInfo {};
            deviceQueueCreateInfo.queueFamilyIndex = 0;
            deviceQueueCreateInfo.queueCount = 1;

            vk::DeviceCreateInfo deviceCreateInfo {};
            deviceCreateInfo.queueCreateInfoCount = 1;
            deviceCreateInfo.pQueueCreateInfos = &deviceQueueCreateInfo;
            auto device = physicalDevices.front().createDevice( deviceCreateInfo );
            if( !device ) {
                throw 0;
            }
            devices.push_back( device );
        }
    }
    catch( std::system_error …
Run Code Online (Sandbox Code Playgroud)

c++ nvidia vulkan

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

What is the difference between Nvidia Hyper Q and Nvidia Streams?

I always thought that Hyper-Q technology is nothing but the streams in GPU. Later I found I was wrong(Am I?). So I was doing some reading about Hyper-Q and got confused more. I was going through one article and it had these two statements:

A. Hyper-Q is a flexible solution that allows separate connections from multiple CUDA streams, from multiple Message Passing Interface (MPI) processes, or even from multiple threads within a process

B. Hyper-Q通过允许32个同时进行的硬件管理的连接(与Fermi可用的单个连接相比),增加了主机与GK110 GPU之间的连接(工作队列)总数。

在前面提到的观点中,观点B指出主机可以创建多个连接到单个GPU。这是否意味着我可以通过不同的应用程序在一个简单的GPU上创建多个上下文?这是否意味着我必须在不同的流上执行所有应用程序?如果我的所有连接都占用内存并且计算资源消耗,谁来管理资源(内存/核心)调度,该怎么办?

cuda gpgpu nvidia cuda-streams

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