C++ AMP로 놀고 있습니다. 그러나 어떤 이유로 든 가장 다운 된 코드가 컴파일되지 않습니다. 이 : 다음과 같은 오류에parallel_for_each에서 지원되지 않는 유형 오류
concurrency::extent<2> e(2,2);
concurrency::parallel_for_each(grid<2>(e), [](index<2> i) restrict(direct3d) {
});
결과 : 단지 람다 식을 좋아하는 나타나지 않습니다
error C3576: 'wmain::': Concurrency::details::_Parallel_for_each argument #3 has unsupported type c:\program files (x86)\microsoft visual studio 11.0\vc\include\amp.h
이 const _Kernel_type& _Kernel
주를 위해 전달되는; AMP 지원을 포함하는 Visual Studio 11 Developer Preview를 사용하고 있습니다. "restrict (direct3d)"는 가속기가 문제의 코드를 실행하는 제어를 지원하는 새로운 키워드입니다.
아이디어가 있으십니까? 몇 가지 다른 예제에서 복사를 시도했지만 아무 것도 작동하지 않아 조금 엉망입니다.
내 친구는 절대 천재 (뿐만 아니라 학자와 신사)입니다! 물론 완벽하게 이해할 수 있습니다. 감사합니다. – Dave
내가 도울 수있어서 기쁩니다. –
이것에 더하여, 입력을 포함하지 않으면 (예를 들어 배열) 출력을 지정하면 즉 값으로 캡처 된 array_view를 지정하면 문제가 해결됩니다. 그래서 나는 람다에서 적어도 1 입력 또는 1 출력을 캡처해야한다고 생각합니다. 베타 버전에서는이 제한 사항이 완화되어 있다는 점을 잘 알고 있으며 특히 명확하지 않습니다. 당연히 뒤늦은 지혜는 훌륭한 일이며, 지금 당연히 완벽합니다. :) – Dave