bank-conflict

    1

    1답변

    스레드 블록 당 16 개의 스레드로 시작되는 CUDA 커널을 설계 중입니다. 내가 처리하고자하는 공유 메모리 (즉 스레드 블록 당)에 N int 배열이 있습니다. 스레드의 액세스 패턴이 어레이에 연속적이면 뱅크 충돌이 없음을 의미합니까? 나는 배열이 char 배열 인 경우 뱅크 충돌이있을 것이라고 생각하지만 int 배열 인 경우 어떤 일이 발생하는지 완전히

    0

    1답변

    나는 벡터 감소를하는 커널을 만들고있다. 코드 : 을 그것은 기본적으로 0 내가 512 플로트 요소의 블록으로,이 계획을 다음과 같은거야 벡터의 모든 위치를 추가하고 위치에 결과를 저장 //scratch[] is a vector located in shared memory with all 512 elements NUM_ELEMENTS = 512; for

    1

    1답변

    공유 메모리에 데이터를로드하기 위해 글로벌 메모리에 액세스 중이며 뱅크 충돌이 있는지 알고 싶습니다. 다음은 설정입니다. 전역 메모리 : g_array. 크기 (256, 64)의 2D 매트릭스 이 방법은 전역 메모리에서 공유 메모리로 배열 데이터를로드하는 방법입니다. gridDim (4, 1) 및 blockDim (16, 16)으로 커널을 호출했습니다. d

    1

    1답변

    NVIDIA의 2.x 아키텍처에서 각 워프는 기본적으로 공유 메모리 48KB와 L1 캐시 16KB (global 및 constant 메모리 사용)로 파티션 된 64KB의 메모리를 가지고 있습니다. 우리 모두 공유 메모리 액세스에 대한 은행 갈등에 대해 알고 있습니다. 메모리는 32 개의 32 비트 크기 뱅크로 나누어 져 있으며 32 개의 모든 스레드가 동시

    3

    1답변

    공유 메모리가 뱅크에 "스트라이프됩니다". 우리 모두 알고 있듯이 이것은 은행 갈등의 모든 문제로 이어집니다. 질문 : 그러나 많은 은행 ("줄무늬") 공유 메모리에 존재하는 방법을 어떻게 확인할 수 있습니까? (NVIDIA "devtalk"포럼 둘러보기, 블록 당 공유 메모리가 16 개 은행에 "스트라이프"된 것으로 보입니다.) 그러나 이것을 어떻게 알

    1

    1답변

    나는이 질문의 애매 모호함에 대해 미리 사과드립니다. 배경 : 나는 오픈 CL의 형태 학적 영상 처리 기능을 쓰기를 시도하고있다. 나는 각 픽셀에 대한 데이터를 저장하는 데 사용하는 __local 버퍼가 있습니다 (각 픽셀은 아직 작업 루프에 의해 루프되지 않음). 또한 테스트 초기부터 단일 작업 그룹 (8x8 픽셀 이미지이므로 수동으로 결과의 유효성을 검

    4

    1답변

    케플러 GPU가 실제로 여러 개의 (분명히 4 개) 워프에서 명령을 실행할 수 있다는 것을 (Why only one of the warps is executed by a SM in cuda?에서) 방금 배웠습니다. 공유 메모리 뱅크는 동시에 네 가지 요청을 처리 할 수 ​​있습니까? 그렇지 않다면 개별적인 워프 중 하나에 은행 갈등이 없더라도 서로 다른 워

    1

    1답변

    2.x 디바이스가있는 디바이스에서 뱅크 충돌이 무엇입니까? CUDA C 프로그래밍 가이드를 이해함에 따라 2.x 장치에서 두 스레드가 동일한 공유 메모리 뱅크에서 동일한 32 비트 워드를 액세스하면 뱅크 충돌이 발생하지 않습니다. 대신, 그 단어가 방송됩니다. 두 스레드가 동일한 공유 메모리 뱅크에 동일한 32 비트 워드를 쓰면 하나의 스레드 만 성공합니다

    8

    1답변

    커널 매개 변수는 온칩 공유 메모리에 저장됩니다. 스레드가 동일한 뱅크에 액세스하려고하면 공유 메모리가 뱅크 충돌을 일으킬 수 있습니다. 제 질문은입니다. 즉, 커널 매개 변수 스레드를 사용하면 은행 충돌이 발생합니까?

    2

    3답변

    cuda로 프로그래밍 할 때 유착과 은행 갈등의 차이점은 무엇입니까? 공유 메모리에서 뱅크가 충돌하는 동안 전역 메모리에서 병합이 발생하는 것일 뿐인가요? 내가> 1.2 지원되는 GPU를 가지고 있다면 병합에 대해 걱정해야합니까? 그 자체로 유착을 처리합니까?