zoukankan      html  css  js  c++  java
  • cuda内存总结

    1.shared memory

    __shared__ 声明为共享内存,将会保存在共享内存中

     2.constant memory

    __constant__ 声明为常量内存,将会保存在常量内存中,常量内存是只读内存,声明时要静态的分配空间

    将数据从CPU拷贝到常量内存中时用cudaMemcpyToSymbol,例如cudaMemcpyToSymbol( s, temp_s,sizeof(Sphere) * SPHERES)

    常量内存带来性能提升的原因:

    1.对常量内存的单次读操作可以广播到临近线程,将节约15次读操作

    2.常量内存的数据将缓存起来,对相同地址的连续读操作将不会产生额外的内存通信量

    当处理常量内存时,NVIDIA硬件将单次内存读操作广播到每个半线程束(线程束中线程的一半),如果半线程束中的每个线程都从常量内存的相同地址上读取数据,那么使用常量内存产生的内存流量将会是使用全局内存的1/16。但是当所有的线程读取不同的地址时,会降低性能,因为若半线程束中的16个线程访问常量内存中的不同数据时,这16次不同的读取操作将会被串行化,从而需要16倍的时间来发出请求,但在全局内存中将会同时发出请求。

  • 相关阅读:
    LeetCode 1
    Thinking in Java学习杂记(第7章)
    工程优化部分概念
    Thinking in Java学习杂记(5-6章)
    Thinking in Java学习杂记(1-4章)
    python中map()和dict()的用法
    JavaWeb高级编程(下篇)
    对CSDN的理性吐槽
    CSDN博客已经打不开了
    大连交大教务一键教学评价
  • 原文地址:https://www.cnblogs.com/shrimp-can/p/5052305.html
Copyright © 2011-2022 走看看