reduction

    4

    3답변

    나는 내 커널 코드의 조각에 감소 적용 할 것 (1 개 차원 데이터) 대신이 작업을 수행하는 단지 하나 개의 스레드를 갖는 __local float sum = 0; int i; for(i = 0; i < length; i++) sum += //some operation depending on i here; , 내가하고 싶은 n 개의 스레드

    0

    1답변

    코드 블록에는 커널 기능이 있습니다. 그것은 필수적으로 모든 점에서 가장 먼 지점을 계산하고 결과는 길이 [3] (점의 ID)에 저장되고 출력 [0]은 속하는 클러스터로부터의 거리입니다. while 피스는 간단한 합계 감소를 수행합니다. 나는 최선의 방법이 아니라는 것을 알고 있지만 왜 하나의 클러스터가 코드가 제대로 작동하는지 이해해야 할 필요가 있습니다

    1

    2답변

    OpenMP 표준은 감소 변수의 초기 값을 지정합니다. 그래서이 변수를 초기화해야합니까 그리고 내가 얼마나 그 다음의 경우 : 내가 오버 헤드를 최소화하고 첫 번째 루프에서 NOWAIT 수 있도록 단지 1 병렬 영역을 사용 int sum; //... for(int it=0;i<maxIt;i++){ #pragma omp parallel { #

    0

    1답변

    필자가 작성한 코드를 병렬 처리하려고합니다. 배열에 감축을 수행하는 데 문제가 있습니다. 모든 작은 배열에 대해 잘 작동하는 것, 그러나 배열 크기가 특정 지점 위에 갈 때 나는 스택 오버플로 오류 또는 충돌 얻을. 컴파일 시간에/F를 사용하여 스택 크기를 늘리려고했는데, Windows에서 ifort를 사용하고 있고, set KMP_STACKSIZE = x

    2

    2답변

    배열의 요소를 병렬로 요약하기 위해 parallel reduction을 수행 할 수 있음을 알고 있습니다. 그러나 나는 그것을 따라 가기가 조금 어렵다. 나는 cryas에서 요소의 절대 값을 합산하는 cublasDasum이라는이 함수를 보았습니다. 절대 값이 아닌 요소를 요약하는 매우 유사한 함수가 있어야합니다. 소스 코드 cublasDasum을 찾을 수있

    1

    1답변

    __global__ void gpu_Heat (float *h, float *g, float * sum, int N) { int nbx, bx, nby, by; float diff = 0.0; nbx = (N-2)/blockDim.x; bx = nbx/gridDim.x; nby = (N-2)/blockD

    0

    1답변

    점이 많은 점 (약 20000)을 반복 할 for 루프가 있습니다. 모든 점에 대해 점이 일부 실린더 안에 있는지 여부가 검사됩니다 (해당 원통이 모든 포인트에 대해 동일). 또한, 포인트 집합에서 가장 높은 Y 좌표를 가지길 원합니다. 이 계산을 많이해야하기 때문에 느리고 루프를 병렬화하기 위해 OpenMP를 사용하고 싶습니다. 현재는 I (다소 감소)

    0

    1답변

    이전 게시물에서 논의 된 CUDA의 축소 알고리즘 (예 : 요소 범위에서의 합계 및 최대화)을 볼 수 있지만 동적 병렬 처리를 사용하면 잠재적으로 다른 방식으로 구현 될 수 있습니다. 커널 내부에서 호출 할 수있는보다 효율적인 구현이 있습니까?

    2

    1답변

    질문과 다음 LINK 에서 그 답을 읽은 후. 내 배경에서 C/C++; volatile을 사용하면 단점이 있다는 것을 알고 있습니다. 또한 CUDA의 경우, volatile 키워드가 사용되지 않으면 최적화가 공유 배열을 레지스터로 대체하여 데이터를 유지할 수 있다는 답이 지적되었습니다. (합계) 감소를 계산할 때 발생할 수있는 성능 문제가 무엇인지 알고 싶

    0

    1답변

    OpenCL을 배우려고하는데 현재는 다른 커널을 만드는 연습을하고 있습니다. 감축 방법을 사용하여 내적 제품을 만들려고 시도하면서 이해가 안되는 문제가 발생했습니다. int 입력 및 출력 코드를 실행할 때 제대로 작동합니다. 모든 int 유형을 float 유형 (입력 및 출력)으로 변경하면 닫히지 만 약간 벗어난 결과를 얻습니다. 왜 이것이 원인인지 또는