Fresto Asked:2020-03-18 05:46:33 +0000 UTC2020-03-18 05:46:33 +0000 UTC 2020-03-18 05:46:33 +0000 UTC 如何使用 OpenCL 并行化 GPU 计算 772 我有一个带有 3 个在并行线程中运行的函数的块。有必要在显卡上的 1000 个线程上运行此块。我应该在传给显卡的函数中自己写创建线程,还是显卡只计算一次这个函数,传递线程函数时我写了多少次? c 1 个回答 Voted Best Answer Владимир Прокофьев 2020-06-09T23:26:46Z2020-06-09T23:26:46Z 视频卡是流处理器。不需要创建线程。您编写Kernel,这是一个C99函数,将针对特定线程进行评估;在那里,您将有3 个特价商品。功能。是的,至少103:内核可以分为模块!您可以通过调用其中的函数int i = get_global_id(0)来找出内核工作的线程号。根据线程号,内核中有不同的操作。好吧,就像在索引i上的正常循环一样。;) 这个循环本身的大小 ( 1000 ) 在主机上设置 - clEnqueueNDRangeKernel函数的global_work_size 参数。从主机启动内核后 -clEnqueueNDRangeKernel - 循环将自行旋转。一切!原则上,可以有几个不同的内核可以在主机上已经在一个循环中顺序运行。顺便说一句,通过异步调用,您甚至可以并行运行——这是CUDA所没有的OpenCL功能。
视频卡是流处理器。不需要创建线程。您编写Kernel,这是一个C99函数,将针对特定线程进行评估;在那里,您将有3 个特价商品。功能。是的,至少103:内核可以分为模块!您可以通过调用其中的函数int i = get_global_id(0)来找出内核工作的线程号。根据线程号,内核中有不同的操作。好吧,就像在索引i上的正常循环一样。;) 这个循环本身的大小 ( 1000 ) 在主机上设置 - clEnqueueNDRangeKernel函数的global_work_size 参数。从主机启动内核后 -clEnqueueNDRangeKernel - 循环将自行旋转。一切!原则上,可以有几个不同的内核可以在主机上已经在一个循环中顺序运行。顺便说一句,通过异步调用,您甚至可以并行运行——这是CUDA所没有的OpenCL功能。