您好我正在尝试更改比例GDIplus :: Bitmap并保存在内存缩放的BItmap中,我有问题.我尝试了很多不同的样本,结果是NULL.例如,我尝试使用SetResolution更改图像的分辨率,我也尝试从image-> graphic转换位图并使用构造函数GDIplus :: Bitmap scale之一,但我没有结果.例如,我尝试下一个代码:
Bitmap *bitmap = new Bitmap((int32)width, (int32)height,PixelFormat32bppARGB);
bitmap=bmp.Clone(0,0,W,H,PixelFormat32bppPARGB);
mBitmap=(void *)bitmap->Clone(0.0f,0.0f,width,height,PixelFormat32bppPARGB);
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 C++ AMP 计算矩阵。我使用宽度和高度为 3000 x 3000 的数组,并重复计算过程 20000 次:
//_height=_width=3000
extent<2> ext(_height,_width);
array<int, 2> GPU_main(ext,gpuDevice.default_view);
array<int, 2> GPU_res(ext,gpuDevice.default_view);
copy(_main, GPU_main);
array_view<int,2> main(GPU_main);
array_view<int,2> res(GPU_res);
res.discard_data();
number=20000;
for(int i=0;i<number;i++)
{
parallel_for_each(e,[=](index<2> idx)restrict(amp)
{
res(idx)=main(idx)+idx[0];//not depend from calculation type
}
array_view<TYPE, 2> temp=res;
res=main;
main=temp;
}
copy(main, _main);
Run Code Online (Sandbox Code Playgroud)
在计算之前,我将矩阵从主机内存复制到 GPU 内存,并创建一个array_view从 0 到 7 的代码行。
之后,我启动一个循环来计算某些操作并重复 20000 次。每次迭代我都会启动一个parallel_for_each使用 C++ AMP 进行计算的循环。
GPU计算速度非常快,但是当我将结果复制到主机时,array _main我发现这个操作需要很多时间,而且我发现如果我number从20000减少到2000,复制的时间也会减少。
为什么会出现这种情况,是同步问题吗?