Cuda 关于计算可视化探查器和用于分析的块数

Cuda 关于计算可视化探查器和用于分析的块数,cuda,opencl,profiler,Cuda,Opencl,Profiler,在《Compute Visual Profiler用户指南》第51页上,它指出: 请注意,如果 内核中的块数小于或不是多处理器数的倍数 跨多个运行的计数器值将不一致 这是一个包含性的还是排他性的“或”陈述?是否总是必须是多处理器?文档中提到的不一致是由多处理器之间的负载不平衡引起的 例如,如果在一台有14个多处理器的特斯拉C2050上运行一个有15个块的内核,那么其中一个多处理器将从一个“额外”块运行线程。如果探查器碰巧在一次分析运行中从这个运行两个块的线程的多处理器收集数据,而在另一次分析运行

在《Compute Visual Profiler用户指南》第51页上,它指出:

请注意,如果 内核中的块数小于或不是多处理器数的倍数 跨多个运行的计数器值将不一致


这是一个包含性的还是排他性的“或”陈述?是否总是必须是多处理器?

文档中提到的不一致是由多处理器之间的负载不平衡引起的

例如,如果在一台有14个多处理器的特斯拉C2050上运行一个有15个块的内核,那么其中一个多处理器将从一个“额外”块运行线程。如果探查器碰巧在一次分析运行中从这个运行两个块的线程的多处理器收集数据,而在另一次分析运行中从一个只运行单个块的线程的多处理器收集数据,那么结果将明显不同

为了回答您提出的问题,“or”是包容性的,这在自然语言中是常见的

虽然我不记得在文档中提到过,但我可以想象,即使这些条件都是错误的,当数据本身导致不平衡(算术/数据量或内存寻址模式取决于某些数据)时,也可能发生配置不一致