"메모리 통합"이란 무엇입니까?


16

그래픽 처리 장치에는 메모리 통합이라는 것이 있다는 것을 알게되었습니다. 그것에 대해 읽을 때 나는 주제에 대해 명확하지 않았습니다. 이것이 메모리 레벨 병렬 처리와 관련이 있습니까?

Google에서 검색했지만 만족스러운 답변을 얻을 수 없었습니다.

누군가 더 포괄적이고 이해하기 쉬운 설명을 제공하면 도움이 될 것입니다.


MLP (Memory-Level Parallelism)는 한 번에 여러 메모리 트랜잭션을 수행하는 기능입니다. 많은 아키텍처에서 이는 한 번에 여러 읽기를 수행 할 수있는 것으로 일반적으로 존재하지만 한 번에 읽기 및 쓰기 작업을 모두 수행 할 수있는 기능으로 나타납니다. 잠재적 충돌 가능성 (동일한 위치에 두 개의 다른 값을 쓰려고 시도)으로 인해 한 번에 여러 쓰기 작업을 수행하는 경우는 드 rare니다. 이는 단일 32 비트 읽기에서 4 개의 개별이지만 연속적인 8 비트 값을 읽는 것과 같이 벡터화 된 메모리 작업과는 다릅니다.
sai kiran grandhi

답변:


11

"Coalescing"은 또한 통합 메모리 액세스 패턴을 의미 할 수 있습니다 . 이 사용법에서 병합은 스레드가 동시에 실행되도록하고 근처에있는 메모리에 액세스하려고 함을 의미합니다. 일반적으로 다음과 같은 이유 때문입니다.

  • 메모리는 일반적으로 RAM에서 큰 블록으로 검색됩니다.
  • 일부 처리 장치는 향후 메모리 액세스를 예측하고 미리 캐시하지만 메모리의 오래된 부분은 처리하려고합니다.
  • 메모리는 연속적으로 더 크지 만 느린 캐시의 계층 구조로 캐시됩니다.

따라서 예측 가능한 메모리 패턴을 사용할 수있는 프로그램을 만드는 것이 중요합니다. 스레드 프로그램에서는 메모리 요청이 완전히 넘치지 않도록하는 것이 훨씬 중요합니다. 그렇지 않으면 프로세싱 유닛은 메모리 요청이 이행되기를 기다릴 것이다.

병렬 프로그래밍 입문에서 영감을 얻은 다이어그램 : 학습 2 GPU 하드웨어 및 병렬 통신 패턴 :

아래 : 4 개의 스레드, 균일 한 메모리 액세스. 검은 색 점선 사각형은 단일 4 워드 메모리 요청을 나타냅니다.

여기에 이미지 설명을 입력하십시오

메모리 액세스는 가깝고 한 번의 이동 / 블록 (또는 최소 요청 수)으로 검색 할 수 있습니다.

그러나 스레드 간 액세스 의 " 보폭 "을 늘리면 더 많은 메모리 액세스가 필요합니다. 아래 : 보폭이 2 개인 4 개의 스레드가 더 있습니다.

4 개의 메모리 통합 스레드 및 보폭이 2 인 4 개의 스레드

여기서이 4 개의 스레드에는 2 개의 메모리 블록 요청이 필요하다는 것을 알 수 있습니다. 보폭이 작을수록 좋습니다. 보폭이 넓을수록 더 많은 요청이 필요할 수 있습니다.

물론, 큰 메모리 보폭보다 더 나쁜 것은 임의 메모리 액세스 패턴입니다. 파이프 라인, 캐시 또는 예측은 거의 불가능합니다.

TikZ 소스 :


2
다중 스레드는 SIMD 아키텍처의 SPLAT 작업과 다소 유사하지만보다 일반적인 청크 내의 요소가 아닌 동일한 데이터 항목에 액세스 할 수도 있습니다. 대기 시간 허용 처리량 프로세서 인 GPU는 유효 대역폭을 늘릴 수있는 경우 액세스 대기 시간을 늘릴 수 있습니다.
Paul A. Clayton

주어진 링크가 끊어졌습니다.
Daniel Soutar

3

인터넷에서 "coalescing"이라는 단어의 두 가지 용도가 모두 메모리와 관련이 있다고 생각합니다. 하나는 사용 가능한 메모리 할당을 통합 하는 것입니다. 이는 질문에 연결된 wikipedia 페이지에서 참조됩니다.


사용 가능한 메모리 할당 병합

메모리를 할당 할 때 때로는 메모리 관리자에 두 개의 인접한 메모리 블록이 해제되는 상황이있을 수 있습니다. 이것들을 결합하면 그것들을 하나의 해제 된 메모리 블록으로 만들 수 있습니다. 이것을 "코어 싱"이라고합니다. 예:

4 개의 할당 된 블록으로 시작 :

4 개의 할당 된 블록

나중에 그중 하나가 해제됩니다.

이제 1 개의 무료 블록

그리고 나중에 다른 사람이 해방됩니다.

이제 2 개의 인접한 자유 블록

이제 두 개의 인접한 여유 블록이있는 이유는 무엇입니까? 그들을 합치기 :

해제 된 블록을 합치기, 이제 2 개의 할당 된 블록, 1 개의 해제

통합은 가능한 한 빨리 또는 가비지 수집기에서 수집기가 실행될 때 발생할 수 있습니다.

TikZ 소스 :


이 답변이 내가 원하는 것에 맞지 않는다고 생각합니다. 메모리 통합은 다른 답변에서 제공 한 인접 메모리 블록을 읽습니다. 가능하면이 답변과 수정하신 문제의 링크를 삭제하십시오.
sai kiran grandhi

@saikirangrandhi 참조를 위해 답변을 드리겠습니다. 원하는대로 수정 한 질문을 수정 / 취소 할 수 있습니다. 질문 아래 "편집"을 누르십시오.
Realz Slaw 5
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.