Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
This blog post assumes you have read the introduction to C++ AMP exceptions.
An instance of the invalid_compute_domain exception type is thrown when the runtime fails to execute the AMP kernel for the compute domain specified at a parallel_for_each call site. The table below lists the common scenarios that result in invalid_compute_domain exception.
Scenario |
Exception Message |
Code Snippet |
Invalid Extent at parallel_for_each |
concurrency::parallel_for_each: unsupported compute domain,the extent of dimension 0 of the compute domain (-120)cannot be smaller than or equalto 0. |
accelerator a; concurrency::extent<1> ext(-120); int x; try { parallel_for_each(ext, [=](index<1> idx) restrict(amp) { int y = x; }); } catch(invalid_compute_domain& ex) { std::cout<< ex.what() << std::endl; } |
Extent not divisible by Tiled extent |
concurrency::parallel_for_each(tiling): unsupported computedomain, the extent of dimension 0 of the computedomain (32) cannot be evenlydivided by the extent ofdimension 0 of the tile (6). |
array<int,1> intArr(1024); concurrency::extent<2> ext(32,32); try { parallel_for_each(ext.tile<6,6>(),[&](tiled_index<6,6> idx) restrict(amp){ int y = idx.local[0]; }); } catch(invalid_compute_domain& ex) { std::cout<< ex.what() << std::endl; } |
In my next blog post, I will cover the unsupported_feature exception.