2016-10-07 1 views
0

많은 양의 항목에 대해 많은 수의 작업을 수행 할 수 있습니다. Y. 각 작업 X는 매우 간단하며 많은 AND 및 OR 논리를 평가하는 것입니다.알 수없는 크기의 배열을 Cudafy에 반환합니다.

각 Func (X, Y)는 자연적으로 매우 빠르지 만 X와 Y의 완전한 조합은 전체 작업을 오랜 시간이 걸리게합니다.

PLinq을 사용하면 속도가 훨씬 빠르지 만 여전히 느립니다.

나는 여러 가지 프레임 워크 (Alea, Cudafy, GPULinq)를 연구하면서 GPU에서이 작업을 수행했지만 GPU가 모든 작업에 적합하지 않다는 것을 알았습니다.

주요 문제는 GPU 커널에서 일부 지점에서 정수 배열의 교집합 또는 합집합을 수행한다는 것입니다. 이로 인해 알 수없는 값이됩니다. 아마도 2 * 길이의 합집합 또는 교차점의 0입니다.

항상 2 * 길이를 사용하여이 문제를 해결할 수 있지만 길이 자체도 상수가 아닙니다.

GPU 프레임 워크에서 가변 크기의 int 배열을 반환하려면 어떻게해야합니까?

답변

0

는 구문 사용 단지 그렇지 않다 :

이중 [] X = gpu.allocate (변수 또는 수치에 기초하여 어레이의 크기);

그런 다음 [Cudafy] 메서드에서 반환합니다.

+0

GPU에서 실행중인 코드에서이를 수행 할 수 없습니다. 미리 크기를 알고 그것을 할당 한 다음 GPU로 전달해야합니다. – Telavian