栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

GPU中线程和块的执行顺序

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

GPU中线程和块的执行顺序

为了搞清楚GPU当中的块和线程是按什么样的顺序来执行的?

修改了一下代码,在内核函数内调用print语句来打印块ID,这里设10个块,每个块1个线程。

import pycuda.driver as cuda

import pycuda.autoinit

from pycuda.compiler import SourceModule

mod = SourceModule("""

    #include 

     __global__ void myfirst_kernel()

       {

        printf("I am in block no: %d \n", blockIdx.x);

      }

""")

function = mod.get_function("myfirst_kernel")

function(grid=(10, 1), block=(1, 1, 1))

结果:

如果我修改内核调用的代码,用线程来执行就能知道线程的执行顺序,代码如下:

import pycuda.driver as cuda

import pycuda.autoinit

from pycuda.compiler import SourceModule

mod = SourceModule("""

    #include 

     __global__ void myfirst_kernel()

       {

        printf("I am in block no: %d \n", threadIdx.x);

      }

""")

function = mod.get_function("myfirst_kernel")

function(grid=(1, 1), block=(10, 1, 1))

结果:

从上面的两段代码可知,在GPU的内核调用中,块是随机执行的,线程是按顺序执行的。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1010128.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号