标签: nvidia

L2 缓存的内存操作是否比 NVIDIA GPU 的全局内存快得多?

现代 GPU 架构同时具有 L1 缓存和 L2 缓存。众所周知,L1 缓存比全局内存快得多。然而,L2 缓存的速度在 CUDA 文档中不太清楚。我查阅了CUDA文档,但只能发现全局内存操作的延迟约为300-500个周期,而L1缓存操作只需要约30个周期。谁能给出二级缓存的速度吗?这些信息可能非常有用,因为如果 L2 缓存与全局内存相比不是很快,那么编程就不会专注于优化 L2 缓存的使用。如果不同架构的速度不同,我只想关注最新的架构,例如 NVIDIA Titan RTX 3090(计算能力 8.6)或 NVIDIA Telsa V100(计算能力 7.0)。

谢谢你!

cuda gpu nvidia

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

OpenVINO 可以支持(并使用)Nvidia GPU 吗?

我最近按照本教程安装了 OpenVINO ,一开始它警告我它看不到显卡。我以为它谈论的是英特尔高清显卡(或类似的),因为我没有其中之一,但我有 Nvidia GTX 1080ti。

警告信息

我没有看到有人谈论过这一点,安装指南中也没有提到,但它甚至可以与 Nvidia 显卡一起使用吗?如果没有,使用 OpenVINO 有何意义?

gpu nvidia intel openvino

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

What is the difference between mapped memory and managed memory?

I have been reading about the various approaches to memory management offered by CUDA, and I'm struggling to understand the difference between mapped memory:

int *foo;
std::size_t size = 32;
cudaHostAlloc(&foo, size, cudaHostAllocMapped);
Run Code Online (Sandbox Code Playgroud)

...and managed memory:

int *foo;
std::size_t size = 32;
cudaMallocManaged(&foo, size);
Run Code Online (Sandbox Code Playgroud)

They both appear to implicitly transfer memory between the host and device. cudaMallocManaged seems to be the newer API, and it uses the so-called "Unified Memory" system. That said, cudaHostAlloc seems to share many of these …

cuda nvidia gpu-managed-memory

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

自 Volta 以来的独立线程调度

自 Volta 以来,Nvidia 为其 GPGPU 引入了新的独立线程调度。如果 CUDA 线程出现分歧,替代代码路径不会按块执行,而是按指令执行。尽管如此,由于 GPU 也是 SIMT,因此不同的路径无法同时执行。这是这篇文章的原文:

https://developer.nvidia.com/blog/inside-volta/(向下滚动到“独立线程调度”)。

我明白这意味着什么。我不明白的是,这种新行为以何种方式加速代码。即使上面文章中的前后图也没有反映出整体加速。

我的问题:由于所描述的新调度,哪种不同的算法在 Volta(和更新的)上运行得更快?

multithreading cuda gpgpu scheduling nvidia

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

如果我有英特尔显卡,我可以安装 cuda 吗?

我想在项目中使用 NVIDIA 的 CUDA 工具包,但我有 Intel(R) Iris Xe Graphics (Windows 11 Pro)。在安装 Nvidia Graphics GeForce Game Ready 时,我收到以下错误

此 Nvidia 显卡驱动程序与此版本的 Windows 不兼容。该图形驱动程序找不到兼容的图形硬件

cuda gpu nvidia intel tensorflow

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

PTX 程序集加载/存储中寄存器周围括号的含义

下面是Triton 编译器生成的明显合法的 PTX 汇编代码。我对加载和存储指令感到困惑{ %r1 }和使用。{ %r2 }根据 PTX ISA 文档,它看起来像一个初始值设定项列表。但这没有意义。不仅因为初始化规范没有提到寄存器的使用。甚至不是因为加载/存储语义中的初始化器是无用的(没有什么可以初始化)。最重要的是,我对加载/存储中的使用将{}参数的含义从标量更改为指针立即数这一事实感到困惑。

也许,一个无聊的开发者只是想让每个人的组装体验更加混乱。有谁有更好的解释吗?

.version 7.5
.target sm_35
.address_size 64

        // .globl       E__01

.visible .entry E__01(
        .param .u64 E__01_param_0,
        .param .u64 E__01_param_1
)
.maxntid 128, 1, 1
{
        .reg .pred      %p<3>;
        .reg .b32       %r<4>;
        .reg .b64       %rd<3>;
        .loc    1 6 0
$L__func_begin0:
        .loc    1 6 0

        ld.param.u64    %rd2, [E__01_param_0];
        ld.param.u64    %rd1, [E__01_param_1];
        mov.pred        %p1, -1;
$L__tmp0:
        .loc    1 7 19
        mov.u32 %r1, 0x0; …
Run Code Online (Sandbox Code Playgroud)

assembly cuda nvidia ptx triton

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

如何通过该程序找到Nvidia GPU(特斯拉,费米或开普勒)的类型

任何人都可以告诉我如何通过程序找到GPU类型(费米,特斯拉或开普勒),以便根据GPU类型调用正确的函数.

通过cudaDeviceProp.major,我能够通过他们的计算能力区分Fermi和Tesla.但我无法区分费米和开普勒.

有谁知道如何找到它.

cuda nvidia

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

NVIDIA Optimus卡不能在OpenGL下切换

当我使用"glGetString(GL_VERSION)"和"glGetString(GL_SHADING_LANGUAGE_VERSION)"来检查我的计算机上的OpenGL版本时,我得到了以下信息:

3.1.0 - 为GL_VERSION构建8.15.10.2538

1.40 - 针对GL_SHADING_LANGUAGE_VERSION的英特尔Build 8.15.10.2538

当我运行"Geeks3D GPU Caps Viewer"时,它显示我的显卡的OpenGL版本(NVS 4200M)是

GL_VERSION:4.3.0

GLSL版本:4.30 NVIDIA通过Cg编译器

这是否意味着我的显卡只支持一些OpenGL 4.3.0功能,而我无法创建4.3上下文?

opengl nvidia optimus

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

使用不规则的内存访问优化CUDA内核

我有以下CUDA内核,它似乎非常"难以"优化:

__global__ void DataLayoutTransformKernel(cuDoubleComplex* d_origx, cuDoubleComplex* d_origx_remap, int n, int filter_size, int ai )
{
    for(int idx = blockIdx.x * blockDim.x + threadIdx.x; idx < filter_size; idx+=blockDim.x * gridDim.x)
    {
        int index = (idx * ai) & (n-1);
        d_origx_remap[idx] = d_origx[index];
    }
}

//Parameters were defined before
int permute[loops] = {29165143,3831769,17603771,9301169,32350975, ...}
int n = 33554432;
int filter_size = 1783157;

for(int i=0; i<loops; i++)
{
    DataLayoutTransformKernel<<<dimGrid, dimBlock, 0, stream[i]>>>((cuDoubleComplex*) d_origx,(cuDoubleComplex*)d_origx_remap+i*filter_size, n, filter_size, permute[i]);

}
Run Code Online (Sandbox Code Playgroud)

内核的目的是重新排序d_origx[]从不规则到常规(d_origx_remap)的数据布局.内核使用不同的访问步幅(ai …

c c++ cuda gpgpu nvidia

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

nvidia-smi是否会在间隔时间内提供即时信息或平均值?

当我使用nvidia-smi -l 60时,我问自己是否:

  • 给出的信息是每60秒使用一次的快照
  • 给出的信息是时间和时间+/- 60秒之间的平均值

你知道答案吗 ?我还没找到.

谢谢.

linux gpu gpgpu nvidia

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