最新帖子

页: [1] 2 3 ... 10
1
CUDA / Re: 我的GPU过程没进入计算
« 最后发表 作者 2017012835 三月 09, 2023, 08:23:59 pm »
要不你用cuda-gdb或cuda-memcheck检查一下内存,我之前也发生过这种情况,就是一个设备上的数组空间大小分配错了,以及核函数中if条件句中的条件都不成立
2
CUDA / Re: Warp 分歧
« 最后发表 作者 2017012835 三月 09, 2023, 08:21:08 pm »
问题已解决。在樊老师的书中第十章第一节解释了:算Warp分支,但是如果两个分支中有一个分支不包含指令,那么即使发生了分歧,也不会显著影响程序性能。
3
CUDA / 我的GPU过程没进入计算
« 最后发表 作者 17638737569 三月 09, 2023, 11:28:47 am »
在我的并行计算中,call的子程序前后打了PRINT都出来了相应的数值,但是在该子程序中输出PRINT*,"123"并没有在运行界面输出
4
CUDA / cuda fortran怎么实现和openmp的混合编程
« 最后发表 作者 17638737569 三月 09, 2023, 09:27:51 am »
cuda fortran怎么实现和openmp的混合编程,我有一个代码使用的是openmp并行加速,但是我想调用他的线程去使用GPU加速,不知道怎么实现,是否有相关的案例?
5
培训信息 / GTC 征文活动——GTC讲座认领清单
« 最后发表 作者 sisiy 三月 08, 2023, 11:13:17 am »
 
BrandonHEdge AI: From Model Development to Deployment [S52125]
晓得薛定谔的喵From Tortoise to Hare: How AI Can Turn Any Driver into a Race Car Driver [S51328]
魏武卒Accelerating Generative AI in Biology and Healthcare [S51257]
生生Advances in Accelerated Computing for Scientific Computing [S52137]
geo-sigHow to Write a CUDA Program [S51210]
The Galaxy RabbitAccelerating Transformer-Based Encoder-Decoder Language Models for Sequence-to-Sequence Tasks [S51158]
丙乙Portable Acceleration of HPC Applications using ISO C++ — Part 1: Fundamentals* [DLIT51169]
白碧哲How to Build a Real-time Path Tracer [S51871]
Brain CompilerWatch Party: 如何设计优化 CUDA 程序 [WP51210]
咖啡逗Accelerate AI Innovation with Unmatched Cloud Scale and Performance (Presented by Microsoft) [S52469]
00101010Creating and Executing an Effective Cyberdefense Strategy in an AI-Driven Business [S51723]
PixelPassionDeep Reinforcement Learning with Real-World Data [S51826]
ChristyWatch Party: CUDA 新特性和发展 [WP51225]
16Accelerated AI Logistics and Route Optimization 101* [DLIT51886]
RyanDeveloping Robust Multi-Task Models for AV Perception [SE50006]
RP CaiAddressing the AI Skills Gap [SE52129]
蔡欣Speech-To-Speech Translation System for a Real-World Unwritten Language [S51780]
亚克西Scaling Deep Learning Training: Fast Inter-GPU Communication with NCCL [S51111]
Ranoe:)Jetson Edge AI Developer Days: Accelerate Edge AI With NVIDIA Jetson Software [SE52433]
d2realConnect with the Experts: GPU-Accelerated Quantum Chemistry and Molecular Dynamics [CWES52130]
slamConnect with the Experts: A Deep-Dive Q&A with Jetson Embedded Platform Engineers [CWES52132]
挠你个痒痒AI 初创企业在中国市场的发展和机会 ——探索中国 AI 初创力量​ [SE52131]
Building Trust in AI for Autonomous Vehicles [S51934]
位位位Introduction to Autonomous Vehicles [S51168]
Tian_DYA Comprehensive Low-Code Solution for Large-Scale 3D Medical Image Segmentation with MONAI Core and Auto3DSeg* [DLIT51974]
Permanent ManiacWatch Party: 基于 TensorRT 的端到端子图优化框架 [WP51416]
王威3D by AI: Using Generative AI and NeRFs for Building Virtual Worlds [S52163]
6
CUDA / 有关对缓存优化的问题
« 最后发表 作者 皮皮虾and皮皮猪 三月 01, 2023, 05:54:35 pm »
问题1:
请问L1/L2 Cache上只有local memory和global memory吗?如果SM读写数据是否和CPU一样先访问L1,再考虑L2,最后在内存?
问题2:
如下图所示,L1 Cache的hit Rate仅51%,请问这方面应该如何优化呢?
7
CUDA / Re: 共享内存数组大小及bank conflict
« 最后发表 作者 queqd 三月 01, 2023, 05:40:09 pm »
您好,您第一个问题是不是数组索引越界了,for循环里的S_A[threadIdx.x * 12 + j],其中threadIdx.x最大是127,当它取最大值(或没有取到最大值时),threadIdx.x * 12 + j都超过了您设置的S_A[128]里面的128
您好,我按照您说的索引越界问题进行了修改将S_A定义设置为__shared__ float S_A[1536],程序可以正确运行,但是将定义设置为__shared__ float S_A[1280]程序也能正确运行,所以对共享内存数组大小问题还是有疑问。


另外,在我的核函数中对共享内存的使用如下
程序代码: [选择]
kernel2(float* A,float* M, float* Y,float* X)
{
    const int n = blockDim.x * blockIdx.x + threadIdx.x; 
       E[n]=0;

        __shared__ float S_E[sizeof(float) * 320];       
        __shared__ float S_A[sizeof(float) * 320];   

       S_E[threadIdx.x] = E[n];
__syncthreads();
        for (int j = 0; j < 12; j++)
        {           
                S_A[threadIdx.x * 12 + j] = A[n * 12 + j];

                S_A[threadIdx.x * 12 + j]=M[Y[n]]+X[n * 12 + j];     
atomicAdd(&S_E[threadIdx.x],S_A[threadIdx.x * 12 + j]/2); 
        }
__syncthreads();


}
请问如何才能最大程度减轻共享内存S_A和S_E共享内存的bank冲突问题?
8
CUDA / 核函数启动时间
« 最后发表 作者 2017012835 三月 01, 2023, 03:44:59 pm »
请问一下,想将一个CPU程序转成GPU程序时,对于原本的c++函数,现在要写成核函数,可能会将原来一个函数分解成现在好几个核函数才能实现。请问核函数多了会不会对程序效率造成较大影响,是否应该尽量在一个核函数中实现呢?
9
CUDA / Re: 共享内存数组大小及bank conflict
« 最后发表 作者 2017012835 三月 01, 2023, 03:13:13 pm »
您好,您第一个问题是不是数组索引越界了,for循环里的S_A[threadIdx.x * 12 + j],其中threadIdx.x最大是127,当它取最大值(或没有取到最大值时),threadIdx.x * 12 + j都超过了您设置的S_A[128]里面的128
10
CUDA / 共享内存数组大小及bank conflict
« 最后发表 作者 queqd 二月 28, 2023, 06:04:33 pm »
1:我在核函数中设置线程块的大小为128,我需要将float类型的变量定义为共享内存变量,发现当将共享内存数组定义写成数组长度__shared__ float S_A[128]时程序运行是错误的,当把定义写为__shared__ float S_A[sizeof(float)*320]时可以得到正确的结果。共享内存不是可以直接定义数组长度吗?
2:我在核函数中共享内存使用如下
程序代码: [选择]
kernel2(float* A,float* M, float* Y,float* X)
{
    const int n = blockDim.x * blockIdx.x + threadIdx.x; 
     
        __shared__ float S_A[sizeof(float) * 320];       
           
        for (int j = 0; j < 12; j++)
        {           
                S_A[threadIdx.x * 12 + j] = A[n * 12 + j];

                S_A[threadIdx.x * 12 + j]=M[Y[n]]+X[n * 12 + j];           
        }
__syncthreads();


}

因该怎么修改程序消除或减轻共享内存的bank冲突?
页: [1] 2 3 ... 10