小编arv*_*n99的帖子

OpenCL传输速率超过PCI-e带宽

我制作了一个OpenCL程序并使用固定内存(CL_MEM_ALLOC_HOST_PTR)来获得从设备到主机的更高传输速率.

传输速率按我的预期增加(使用AMD APP Profiler 2.4获得传输速率).问题是矩阵4096 x 4096(64 MB)的传输速率高于PCIe带宽(93703 GB/s).

当我使用零复制缓冲区(CL_MEM_ALLOC_HOST_PTR + clEnqueueMapBuffer)时也发生了这种情况.我搜索一些信息,如果固定内存和零复制缓冲区具有高传输速率,但它仍然受限于PCIe带宽用于独立GPU.那么,如果传输速率超过PCIe带宽(使用PCIe带宽2.0 x 16),这是正常的吗?

我的操作系统是Windows 7 64位.我使用AMD APP SDK 2.6和独立GPU AMD HD 6630M.

编辑:这是代码:

#include <Windows.h>
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

#ifdef __APPLE__   
   #include <OpenCL/opencl.h>   
#else  
   #include <CL/cl.h>   
#endif 

#define MAX_SOURCE_SIZE (0x100000)

cl_context context = NULL; 
cl_command_queue queue = NULL; 
cl_program program = NULL; 

void MatrixMul(cl_mem d_A, cl_mem d_B, cl_mem d_C, int size)
{
cl_int err;
cl_kernel naive;

// Create Kernel Object Bound To …
Run Code Online (Sandbox Code Playgroud)

opencl

5
推荐指数
1
解决办法
832
查看次数

标签 统计

opencl ×1