101 lines
5.0 KiB
Plaintext
101 lines
5.0 KiB
Plaintext
|
|
什么是数据并行性?
|
|||
|
|
CUDA C程序的整体执行流程是怎样的?
|
|||
|
|
CUDA中的核函数是什么?
|
|||
|
|
CUDA核函数的函数声明关键字有哪些,各自的作用是什么?
|
|||
|
|
CUDA中cudaMalloc函数的作用和参数要求是什么?
|
|||
|
|
CUDA中cudaMemcpy函数的功能和参数构成是什么?
|
|||
|
|
CUDA中的blockDim内置变量代表什么?
|
|||
|
|
CUDA中的threadIdx内置变量的作用是什么?
|
|||
|
|
CUDA中的blockIdx内置变量的含义是什么?
|
|||
|
|
CUDA核函数启动时的执行配置参数有什么作用?
|
|||
|
|
为什么CUDA核函数中常需要添加边界检查的条件判断?
|
|||
|
|
CUDA中的设备全局内存和主机内存有什么本质区别?
|
|||
|
|
CUDA核函数的执行网格是如何组织的?
|
|||
|
|
什么是CUDA中的SPMD并行编程模式?
|
|||
|
|
CUDA中cudaFree函数的作用是什么?
|
|||
|
|
CUDA中线程块的维度设置有什么限制?
|
|||
|
|
如何将CUDA线程映射到二维数据(如图像像素)?
|
|||
|
|
CUDA中的__syncthreads()函数有什么作用?
|
|||
|
|
使用__syncthreads()有哪些注意事项?
|
|||
|
|
什么是CUDA的透明可扩展性?
|
|||
|
|
CUDA中线程块的资源分配是如何进行的?
|
|||
|
|
如何查询CUDA设备的属性信息?
|
|||
|
|
CUDA设备属性中maxThreadsPerBlock的含义是什么?
|
|||
|
|
CUDA中的warp是什么?
|
|||
|
|
CUDA中warp的调度机制是怎样的?
|
|||
|
|
什么是CUDA的延迟容忍(隐藏)机制?
|
|||
|
|
CUDA中SM的核心组成部分有哪些?
|
|||
|
|
为什么CUDA需要为SM分配大量线程?
|
|||
|
|
CUDA中线程块的执行顺序是怎样的?
|
|||
|
|
在图像模糊核函数中,如何处理边界像素的计算?
|
|||
|
|
CUDA中gridDim内置变量的作用是什么?
|
|||
|
|
CUDA中线程块的尺寸选择需要考虑哪些因素?
|
|||
|
|
什么是CUDA的零开销线程调度?
|
|||
|
|
CUDA中多维度线程块和网格的优势是什么?
|
|||
|
|
CUDA中线程同步为什么仅能在块内实现?
|
|||
|
|
为什么内存访问效率对CUDA程序性能至关重要?
|
|||
|
|
什么是计算-全局内存访问比?
|
|||
|
|
CUDA中的寄存器内存有什么特点?
|
|||
|
|
CUDA中的共享内存有什么特性?
|
|||
|
|
CUDA中的常量内存有什么作用?
|
|||
|
|
CUDA中的全局内存有什么优缺点?
|
|||
|
|
什么是数据局部性?
|
|||
|
|
什么是CUDA中的分块(tiling)技术?
|
|||
|
|
分块技术能提升CUDA程序性能的核心原因是什么?
|
|||
|
|
矩阵乘法中使用分块技术的优势是什么?
|
|||
|
|
CUDA核函数中自动数组变量会被分配到哪里?
|
|||
|
|
CUDA中共享内存的作用域和生命周期是怎样的?
|
|||
|
|
CUDA中常量内存的作用域和生命周期是怎样的?
|
|||
|
|
为什么CUDA程序中要谨慎使用寄存器?
|
|||
|
|
分块矩阵乘法中为什么需要添加边界检查?
|
|||
|
|
CUDA中全局内存的访问延迟和带宽与片上内存有多大差距?
|
|||
|
|
什么是CUDA中的“边角转换(corner turning)”技术?
|
|||
|
|
CUDA中共享内存的容量限制会带来什么影响?
|
|||
|
|
CUDA中内存资源如何限制并行性?
|
|||
|
|
如何动态调整CUDA核函数的共享内存用量?
|
|||
|
|
什么是CUDA中的全局内存合并访问?
|
|||
|
|
在CUDA的行优先存储矩阵中,如何实现全局内存的合并访问?
|
|||
|
|
什么是CUDA中的内存通道和内存银行?
|
|||
|
|
内存通道和银行如何提升CUDA的内存访问带宽?
|
|||
|
|
为什么CUDA程序需要足够多的并行线程来充分利用内存带宽?
|
|||
|
|
什么是CUDA中的控制流发散?
|
|||
|
|
控制流发散对CUDA程序性能有什么影响?
|
|||
|
|
CUDA中如何减少控制流发散的影响?
|
|||
|
|
CUDA中动态资源分配的含义是什么?
|
|||
|
|
CUDA中寄存器资源的分配会如何影响并行性?
|
|||
|
|
什么是CUDA中的“性能悬崖”?
|
|||
|
|
CUDA中共享内存的使用会如何影响并行性?
|
|||
|
|
什么是CUDA中的线程粒度?
|
|||
|
|
调整CUDA线程粒度的优势是什么?
|
|||
|
|
矩阵乘法中提升线程粒度的具体方式是什么?
|
|||
|
|
CUDA中warp内线程的执行特性是什么?
|
|||
|
|
为什么CUDA中要尽量避免warp内的控制流发散?
|
|||
|
|
CUDA中归约算法为什么会出现控制流发散?
|
|||
|
|
如何优化归约算法中的控制流发散?
|
|||
|
|
CUDA中的Occupancy(占用率)指什么?
|
|||
|
|
影响CUDA Occupancy的因素有哪些?
|
|||
|
|
CUDA中如何计算核函数的Occupancy?
|
|||
|
|
什么是CUDA中的内存银行冲突?
|
|||
|
|
如何避免CUDA中的共享内存银行冲突?
|
|||
|
|
CUDA中全局内存的对齐访问有什么要求?
|
|||
|
|
IEEE 754浮点数格式由哪几部分组成?
|
|||
|
|
什么是浮点数的规格化表示?
|
|||
|
|
什么是浮点数的偏移(excess)编码?
|
|||
|
|
什么是浮点数的非规格化(denormal)数?
|
|||
|
|
浮点数的精度和什么因素相关?
|
|||
|
|
什么是浮点数的ULP?
|
|||
|
|
什么是浮点数运算的准确度?
|
|||
|
|
浮点数运算中的舍入误差是如何产生的?
|
|||
|
|
为什么并行归约的顺序会影响浮点数的计算结果?
|
|||
|
|
如何提升并行归约的浮点数计算精度?
|
|||
|
|
什么是NaN和无穷大?
|
|||
|
|
什么是信号NaN(SNaN)和安静NaN(QNaN)?
|
|||
|
|
什么是数值算法的稳定性?
|
|||
|
|
高斯消元法为什么会出现数值不稳定性?
|
|||
|
|
什么是高斯消元法的选主元(pivoting)技术?
|
|||
|
|
浮点数的表示范围由什么因素决定?
|
|||
|
|
什么是浮点数的下溢和上溢?
|
|||
|
|
为什么并行算法的数值结果可能与串行算法不同?
|
|||
|
|
单精度和双精度浮点数的主要区别是什么?
|
|||
|
|
什么是数值计算中的大数吞小数现象?
|