KR102210765B1 - 긴 지연시간 숨김 기반 워프 스케줄링을 위한 방법 및 장치 - Google Patents

긴 지연시간 숨김 기반 워프 스케줄링을 위한 방법 및 장치 Download PDF

Info

Publication number
KR102210765B1
KR102210765B1 KR1020190036886A KR20190036886A KR102210765B1 KR 102210765 B1 KR102210765 B1 KR 102210765B1 KR 1020190036886 A KR1020190036886 A KR 1020190036886A KR 20190036886 A KR20190036886 A KR 20190036886A KR 102210765 B1 KR102210765 B1 KR 102210765B1
Authority
KR
South Korea
Prior art keywords
warp
warps
memory
instruction
execute
Prior art date
Application number
KR1020190036886A
Other languages
English (en)
Other versions
KR20200114702A (ko
Inventor
김광복
김철홍
Original Assignee
전남대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 전남대학교산학협력단 filed Critical 전남대학교산학협력단
Priority to KR1020190036886A priority Critical patent/KR102210765B1/ko
Publication of KR20200114702A publication Critical patent/KR20200114702A/ko
Application granted granted Critical
Publication of KR102210765B1 publication Critical patent/KR102210765B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 긴 지연시간 숨김 기반 워프 스케줄링을 위한 방법 및 장치에 관한 것이다. 본 발명의 일 실시예에 따른 워프 스케줄링 방법은 (a) 제1 임계값 이상의 지연시간(latency)을 발생시키는 메모리 명령어(memory instruction)를 실행하는 워프들을 발행(issue)하는 단계; 및 (b) 상기 메모리 명령어를 실행하는 워프들을 발행한 후, 연산 명령어(computation)를 실행하는 워프들을 발행하는 단계;를 포함할 수 있다.

Description

긴 지연시간 숨김 기반 워프 스케줄링을 위한 방법 및 장치{A method and apparatus for long latency hiding based warp scheduling}
본 발명은 워프 스케줄링에 관한 것으로, 더욱 상세하게는 긴 지연시간 숨김 기반 워프 스케줄링을 위한 방법 및 장치에 관한 것이다.
GPU와 같은 처리량 향상을 위해 고안된 프로세서들은 최근 강력한 연산 자원을 이용하여 범용 프로그램을 빠르게 수행할 수 있다. 이에, GPU의 효율성 향상을 위해 다양한 워프 스케줄링 방식이 개발되고 있다.
다양한 워프 스케줄링 방식 중 하나인 CCWS은 L1 데이터 캐시에서의 워프 내 지역성을 제대로 활용하지 못하는 문제점을 완화하고자 제안된 워프 스케줄링 기법이다. L1 데이터 캐시에서 교체된 태그 정보를 추가된 캐시에 저장하고 워프별로 스레싱(Thrashing) 발생 빈도를 모니터링한다. 만약 한 워프가 지역성올 활용하지 못한다면 해당 워프를 다른 워프에 비해 우선적으로 발행(issue)하여 요청 데이터가 교체되기 전에 재사용할 수 있도록 한다. 따라서 캐시의 지역성을 향상시킬 수 있지만 스레드 수준의 병렬성이 감소될 수 있다. 또한, 실행 시간 동안 워프별로 스레싱 관련 정보를 갱신하고 계산하기 위한 하드웨어 복잡도와 공간이 요구된다.
CAWA는 명령어와 스톨 기반의 임계성(Criticality) 예측기를 제안하고, 이에 따라 스레드 블록에서의 각 워프들을 분류한다. 또한, 임계성 기반의 워프 스케줄러는 임계성 워프들을 자원에 할당하도록 하고 캐시 재사용성을 예측한다.
다만, 종래의 워프 스케줄링 방식의 경우, 병목현상을 일으키거나 지연시간 숨김과 메모리 자원 활용에 미흡하다는 문제점이 있다.
[비특허문헌 1] T. G. Rogers., M. O'Connor., and T. M. Aamodt, "Cache-conscious wavefront scheduling," Proceedings of the 45th Annual IEEE/ACM International Symposium on Microarchitecture pp.72-83, 2012.
본 발명은 전술한 문제점을 해결하기 위하여 창출된 것으로, 긴 지연시간 숨김 기반 워프 스케줄링을 위한 방법 및 장치를 제공하는 것을 그 목적으로 한다.
또한, 본 발명은 긴 지연시간을 발생시키는 메모리 명령어(memory instruction)를 수행하는 워프를 우선적으로 발행(issue)하고, 연산 명령어(computation instruction)을 수행하는 워프를 균등하게 발행하는 워프 스케줄링을 위한 방법 및 장치를 제공하는 것을 그 목적으로 한다.
본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 명확하게 이해될 수 있을 것이다.
상기한 목적들을 달성하기 위하여, 본 발명의 일 실시예에 따른 워프 스케줄링 방법은 (a) 제1 임계값 이상의 지연시간(latency)을 발생시키는 메모리 명령어(memory instruction)를 실행하는 워프들을 발행(issue)하는 단계; 및 (b) 상기 메모리 명령어를 실행하는 워프들을 발행한 후, 연산 명령어(computation)를 실행하는 워프들을 발행하는 단계;를 포함할 수 있다.
실시예에서, 상기 (a) 단계는, 상기 메모리 명령어에 대하여 할당시간이 제2 임계값 이상인 워프들을 발행하는 단계;를 포함할 수 있다.
실시예에서, 상기 워프 스케줄링 방법은, 상기 (a) 단계 이후에, 상기 메모리 명령어를 실행하는 워프들을 상기 할당시간을 기반으로 정렬하여 메모리 워프 큐(memory warp queue)에 삽입하는 단계;를 더 포함할 수 있다.
실시예에서, 상기 워프 스케줄링 방법은, 상기 삽입하는 단계 이후에, 상기 메모리 워프 큐에 삽입된 워프들의 순서에 따라 상기 메모리 명령어를 실행하는 단계; 를 더 포함할 수 있다.
실시예에서, 상기 (b) 단계는, 메모리 파이프라인에 스톨(stall)이 발생하는 경우, 상기 연산 명령어를 실행하는 워프들을 발행하는 단계;를 포함할 수 있다.
실시예에서, 상기 워프 스케줄링 방법은, 상기 (b) 단계 이후에, 워프 ID(identification)에 따라 상기 연산 명령어를 실행하는 워프들을 정렬하여 연산 워프 큐(computation warp queue)에 삽입하는 단계;를 더 포함할 수 있다.
실시예에서, 상기 워프 스케줄링 방법은, 상기 삽입하는 단계 이후에, 상기 연산 워프 큐에 삽입된 워프들의 순서에 따라 상기 연산 명령어를 실행하는 단계;를 더 포함할 수 있다.
실시예에서, 상기 워프 스케줄링 방법은, 상기 (b) 단계 이후에, 활성화 워프(active warp)의 일부를 포함하는 최근 레지스터(recency register)의 최근 비트(recency bit)에 기반하여, 상기 연산 명령어를 실행하는 워프들을 정렬하여 연산 워프 큐(computation warp queue)에 삽입할 수 있다.
실시예에서, 상기 메모리 명령어를 실행하는 워프들은, 상기 지연시간에 따라 우선순위가 부여되고, 상기 연산 명령어를 실행하는 워프들은, 동일한 우선순위가 부여될 수 있다.
실시예에서, 상기 메모리 명령어와 상기 연산 명령어는, 명령어의 타입에 따라 분리하여 저장될 수 있다.
실시예에서, 워프 스케줄링 장치는, 제1 임계값 이상의 지연시간(latency)을 발생시키는 메모리 명령어(memory instruction)를 실행하는 워프들을 발행(issue)하고, 상기 메모리 명령어를 실행하는 워프들을 발행한 후, 연산 명령어(computation)를 실행하는 워프들을 발행하는, 워프 스케줄러;를 포함할 수 있다.
실시예에서, 상기 워프 스케줄러는, 상기 메모리 명령어에 대하여 할당시간이 제2 임계값 이상인 워프들을 발행할 수 있다.
실시예에서, 상기 워프 스케줄러는, 상기 메모리 명령어를 실행하는 워프들을 상기 할당시간을 기반으로 정렬하여 메모리 워프 큐(memory warp queue)에 삽입할 수 있다.
실시예에서, 상기 워프 스케줄러는, 상기 메모리 워프 큐에 삽입된 워프들의 순서에 따라 상기 메모리 명령어를 실행할 수 있다.
실시예에서, 상기 워프 스케줄러는, 메모리 파이프라인에 스톨(stall)이 발생하는 경우, 상기 연산 명령어를 실행하는 워프들을 발행할 수 있다.
실시예에서, 상기 워프 스케줄러는, 워프 ID(identification)에 따라 상기 연산 명령어를 실행하는 워프들을 정렬하여 연산 워프 큐(computation warp queue)에 삽입할 수 있다.
실시예에서, 상기 워프 스케줄러는, 상기 연산 워프 큐에 삽입된 워프들의 순서에 따라 상기 연산 명령어를 실행하는 단계;를 더 포함할 수 있다.
실시예에서, 상기 워프 스케줄러는, 활성화 워프(active warp)의 일부를 포함하는 최근 레지스터(recency register)의 최근 비트(recency bit)에 기반하여, 상기 연산 명령어를 실행하는 워프들을 정렬하여 연산 워프 큐(computation warp queue)에 삽입할 수 있다.
실시예에서, 상기 메모리 명령어를 실행하는 워프들은, 상기 지연시간에 따라 우선순위가 부여되고, 상기 연산 명령어를 실행하는 워프들은, 동일한 우선순위가 부여될 수 있다.
실시예에서, 상기 메모리 명령어와 상기 연산 명령어는, 명령어의 타입에 따라 분리하여 저장될 수 있다.
상기한 목적들을 달성하기 위한 구체적인 사항들은 첨부된 도면과 함께 상세하게 후술될 실시예들을 참조하면 명확해질 것이다.
그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라, 서로 다른 다양한 형태로 구성될 수 있으며, 본 발명의 개시가 완전하도록 하고 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자(이하, "통상의 기술자")에게 발명의 범주를 완전하게 알려주기 위해서 제공되는 것이다.
본 발명의 일 실시예에 의하면, 긴 지연시간을 발생시키는 메모리 명령어를 수행하는 워프를 우선적으로 발행함으로써 메모리 자원을 최대한 활용하고, 연산 명령어를 수행하는 워프를 균등한 우선순위로 발행함으로써 워프 수준의 병렬성을 높일 수 있다.
본 발명의 효과들은 상술된 효과들로 제한되지 않으며, 본 발명의 기술적 특징들에 의하여 기대되는 잠정적인 효과들은 아래의 기재로부터 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 그래픽 처리 장치(Graphics Processing Unit, GPU)의 스트리밍 멀티프로세서(Streaming Multiprocessor, SM)의 기능적 구성을 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 워프 스케줄링의 예를 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 워프 스케줄러의 기능적 구성을 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 워프 스케줄링 장치의 동작 방법을 도시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 L1 데이터 캐시의 미스 비율 그래프를 도시한 도면이다.
도 6은 본 발명의 일 실시예에 따른 L1 데이터 캐시에 대한 예약 실패 그래프를 도시한 도면이다.
도 7은 본 발명의 일 실시예에 따른 스톨 사이클 그래프를 도시한 도면이다.
도 8은 본 발명의 일 실시예에 따른 워프 스케줄링 방식에 따른 성능 그래프를 도시한 도면이다.
본 발명은 다양한 변경을 가할 수 있고, 여러 가지 실시예들을 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 이를 상세히 설명하고자 한다.
청구범위에 개시된 발명의 다양한 특징들은 도면 및 상세한 설명을 고려하여 더 잘 이해될 수 있을 것이다. 명세서에 개시된 장치, 방법, 제법 및 다양한 실시예들은 예시를 위해서 제공되는 것이다. 개시된 구조 및 기능상의 특징들은 통상의 기술자로 하여금 다양한 실시예들을 구체적으로 실시할 수 있도록 하기 위한 것이고, 발명의 범위를 제한하기 위한 것이 아니다. 개시된 용어 및 문장들은 개시된 발명의 다양한 특징들을 이해하기 쉽게 설명하기 위한 것이고, 발명의 범위를 제한하기 위한 것이 아니다.
본 발명을 설명함에 있어서, 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우, 그 상세한 설명을 생략한다.
이하, 본 발명의 일 실시예에 따른 긴 지연시간 숨김 기반 워프 스케줄링을 위한 방법 및 장치를 설명한다.
도 1은 본 발명의 일 실시예에 따른 그래픽 처리 장치(Graphics Processing Unit, GPU)의 스트리밍 멀티프로세서(Streaming Multiprocessor, SM)(100)의 기능적 구성을 도시한 도면이다. 일 실시예에서, 그래픽 처리 장치는 다수의 SM(Streaming Multiprocessor)(100)으로 구성될 수 있다. 각 SM(100)은 내부 연결망(Interconnection Network)을 통해 각 별도의 메모리 파티션(Memory Partition)에 연결될 수 있다.
도 1을 참고하면, SM(100)는 명령어(Instruction) 버퍼(110), L1 명령어 캐시(120), 스코어보드(130), 레지스터 파일(140), 워프 스케줄링(150), 명령어 실행부(160)를 포함할 수 있다.
명령어 버퍼(110)는 워프(warp)를 위한 PC(program counter)와 빈 슬롯을 선택할 수 있다. 해당 명령어는 L1 명령어 캐시(120)에서 가져온 후 명령어 버퍼(110)의 빈 슬롯에 배치될 수 있다. 일 실시예에서, 해당 명령어는 명령어 버퍼(110)에 배치되기 전에 디코딩 유닛(미도시)을 통해 디코딩될 수 있다.
명령어는 준비 비트(ready bit)가 스코어보드(130)에 의해 설정될 때까지, 즉, 이 워프로부터의 이전 명령어가 완료될 때까지 명령어 버퍼(110)에서 대기할 수 있다.
워프 스케줄러(150)는 해저드가 발생하지 않도록 본 발명에 따른 워프 스케줄링 기법에 따라 명령어 버퍼(110)를 확인하여 적절한 명령어 실행부(160)에 명령어를 전달할 수 있다.
워프 스케줄러(150)는 GTO 방식과 LRR 방식을 적용하여 워프 스케줄링을 수행할 수 있다. 일 실시예에서, 워프 스케줄러(150)는 긴 지연시간을 발생시키는 메모리 명령어(memory instruction)를 수행하는 워프를 우선적으로 발행(issue)하여 메모리 자원을 최대한 활용하고, 연산 명령어(computation instruction)을 수행하는 워프는 균등하게 발행하여 워프 수준의 병렬성을 높일 수 있다.
즉, 워프 스케줄러(150)는 병목현상을 일으키지 않으면서 지연시간 숨김과 메모리 자원 활용에 유리한 정적 워프 스케줄링을 수행할 수 있다.
여기서, LRR 방식은 워프 ID를 기준으로 워프들이 순차적으로 발행할 수 있도록 하고, 발행 사이클에 발행될 준비가 되지 않은 워프는 무시할 수 있다. LRR 방식은 모든 워프를 발행할 수 있는 후보 워프로 보기 때문에 워프/CTA 관점에서 균등하게 발행되는 경향이 있고, 병렬성을 극대화할 수 있는 방식을 의미할 수 있다.
GTO 방식은 스톨이 발생하지 않는다면 동일 워프를 계속 수행할 수 있다. 만약 스톨이 발생한다면 할당된 시간이 오래된 워프를 우선적으로 발행할 수 있다. 따라서, 모든 워프가 전반적인 긴 대기시간을 갖지 않는다면 할당된 시간이 오래된 워프들이 계속적으로 수행될 수 있다.
SM(100)은 실행 중인 모든 스레드의 컨텍스트(Context)를 저장하는 워프 풀(Warp Pool)을 포함할 수 있다. 이 경우, 워프 스케줄러(150)는 워프 풀에서 파이프라인 해저드를 발생시키지 않을 워프를 선택하여 매 사이클마다 발행(issue)할 수 있다.
명령어 처리부(160)는 명령어의 타입에 따라 명령어를 실행할 수 있다. 명령어 실행부(160)는 SP(streaming processor), SFU(special function unit) 및 LD/ST(load/store) 유닛을 포함할 수 있다.
일 실시예에서, GPU 응용 프로그램은 커널이라는 동일한 코드 부분을 수행하는 스레드의 집합으로 이루어질 수 있다. 실행 시간 동안 여러 스레드가 CTA(Cooperative Thread Array) 혹은 스레드 블록(Thread Block)이라고 불리는 단위로 스레드 집합을 형성할 수 있다. 스레드 블록 내의 모든 스레드는 워프(Warp) 단위로 수행되고 관리될 수 있다.
멀티 스레딩 기술과 레지스터 파일(140)을 사용하면 스레드/워프가 스톨을 발생시킬 때마다 컨텍스트 스위칭(Context Switching)을 빠르게 수행하여 불필요한 지연시간을 최소화할 수 있다. 따라서, 그래픽 처리 장치는 기존 CMP 설계와 비교하여 평균 파이프라인 사용률과 처리량을 높일 수 있다.
도 2는 본 발명의 일 실시예에 따른 워프 스케줄링의 예를 도시한 도면이다.
도 2를 참고하면, 메모리 명령어는 메모리 계층에서 데이터를 불러오거나 쓰기 연산을 수행할 수 있다. 만약 온 칩 메모리에서 데이터 블록을 찾지 못하면 긴 지연시간이 추가적으로 발생할 수 있다. 오프 칩의 L2 캐시에 접근하는 경우, 100 클럭 사이클 이상의 긴 지연시간이 발생할 수 있다. 또한, 오프칩인 DRAM에 대한 접근 레이턴시는 400~600 클럭 사이클에 달할 수 있다.
따라서, 긴 지연시간 동안 다른 명령어를 수행할 수 있도록 스케줄러에 의한 지연시간 숨김이 적극 활용되어야 한다. 또한, 스레드 수준의 병렬성(Thread Level Parallelism, TLP) 크기는 GPU의 자원을 효과적으로 활용하는 주요인이라고 할 수 있다. 스레드 집합인 워프가 메모리 명령어를 수행할 때 스레드 스케줄러에 의해 다른 워프를 실행할 수 있도록 컨텍스트 스위칭(Context Switching)을 수행한다. 만약 SM에 발행될 준비가 된 워프들이 충분한 경우 다수의 워프가 동시 수행 가능하도록 지원할 수 있는 관리 자원 또한 필요하다.
LRR 방식은 모든 워프에 대해 거의 같은 처리율을 보이기 때문에 동시에 같은 자원을 점유할 수 있다. 특히 긴 지연시간을 발생시키는 메모리 명령어가 동시에 발행된다면 캐시 자원에 대한 병목현상이 발생함으로써 성능을 감소시킬 수 있다. 또한, 긴 지연시간 동안 다른 연산 유닛을 사용하는 명령어가 준비되지 않는다면 일부 실행 유닛의 활용률 저하로 이어지게 된다.
도 2를 참고하면, 자원을 무한정으로 가정하여 메모리 명령어와 연산 명령어가 워프 스케줄러에 의해 발행될 때 서로 다른 워프 스케줄링 방식에 따른 다른 결과를 확인할 수 있다.
GTO 방식(210)은 스톨이 발생하지 않는다면 동일 워프를 계속 수행할 수 있다. 만약 스톨이 발생한다면 할당된 시간이 오래된 워프를 우선적으로 발행할 수 있다.
MTO(memory then oldest) 방식(220)은 메모리 명령어를 우선적으로 발행하되 동일한 명령어 타입에 대해서는 할당시간이 오래된 워프를 우선적으로 발행할 수 있다.
MOTRR(memory oldest then round robin)(230)은 메모리 명령어에 대해서 할당시간 순서를 따르되 그 외 연산 명령어를 수행하는 워프는 LRR 방식을 따르는 방식을 의미할 수 있다. MTO 방식(220)과 MOTRR 방식(230)은 모두 메모리 명령어를 우선적으로 발행함으로써 지연시간 숨김 효과율 통해 전체 실행 시간을 감소시킬 수 있다.
각 SM(100)에 포함된 워프 스케줄러(150)를 구현하기 위해서는 각 워프가 실행하는 명령어의 타입에 따라 메모리 명령어와 연산 명령어로 나누어 저장할 수 있다. 하지만, 각 명령어 타입에 해당하는 워프들을 어떤 우선순위로 발행할지 또한 결정해야 할 수 있다.
본 발명의 다양한 실시예들에 따른 워프 스케줄링은 LRR 방식과 GTO 방식을 적용할 수 있다. LRR 방식과 GTO 방식은 구현 복잡도가 낮고 워크로드의 특성에 따라 각각 우수한 성능을 보인다.
본 발명에 따른 워프 스케줄링은 명령어를 수행할 때 각각 다른 처리 시간을 가지는 명령어들을 효과적으로 병렬 실행하도록 스케줄링함으로써 긴 지연시간 숨김 효과를 높일 수 있다. 따라서 본 발명에 따른 워프 스케줄링이 적용된 GPU는 명령어를 처리하는 전체 사이클 수가 감소할 수 있다.
본 발명에 따른 워프 스케줄링의 경우, 효과적인 지연 시간 활용 방법을 크게 두 가지로 제안한다. 긴 지연시간을 발생키는 메모리 명령어를 우선적으로 발행하여 메모리 자원을 최대한 활용하는 방법과 연산 명령어를 수행하는 워프에서는 LRR 방식을 적용하여 워프 수준의 병렬성을 높이는 기법이다.
종래의 LRR 방식은 동시에 많은 워프가 동일 자원을 사용함으로써 성능 저하가 발생한다. 그러나, 본 발명에 따른 워프 스케줄링은 메모리 명령어를 최대한 빨리 발행하기 때문에 동시에 메모리 명령어가 수행되는 현상을 완화할 수 있다.
본 발명에 따른 워프 스케줄링에 의해 워프 풀에 있는 발행 준비 워프(Ready Warp)들은 수행할 명령어의 타입에 따라 크게 두 가지 그룹으로 분류되어 저장된다. 분류된 워프들은 각각 다른 큐에 삽입될 때 서로 다른 우선순위 방식에 따라 다시 정렬된다.
도 2를 참고하면, 메모리 명령어를 우선적으로 발행할 때 전체 실행 사이클이 감소된 것을 확인할 수 있다. MTO 방식(220)과 MOTRR 방식(230)은 모두 GTO 방식에 비해 전체 실행 클럭 사이클이 줄어든다. 메모리 명령어를 우선적으로 발행하고 연산 명령어에 대해서 LRR 방식을 사용하는 경우, MTO 방식(220)과 MOTRR 방식(230)에 비해 지연 시간 숨김이 효과적으로 이루어진 것을 확인할 수 있다.
도 3은 본 발명의 일 실시예에 따른 워프 스케줄러(150)의 기능적 구성을 도시한 도면이다.
도 3을 참고하면, 워프 스케줄러(150)는 GTO 기반 정렬모듈(310), LRR 기반 정렬모듈(320), 메모리 워프 큐(330) 및 연산 워프 큐(340)를 포함할 수 있다.
GTO 기반 정렬모듈(310)은 메모리 명령어를 수행하는 워프를 할당 시간을 기반으로 정렬하여 메모리 워프 큐(330)에 삽입할 수 있다.
LRR 기반 정렬모듈(320)은 연산 명령어를 수행하는 워프를 최근 발행된 워프 ID 값을 기준으로 정렬할 수 있다. 일 실시예에서, LRR 기반 정렬모듈(320)은 연산 명령어를 수행하는 워프들을 최근 레지스터(Recency Register)(350)에 있는 최근 비트를 참조하여 최근 메모리 명령어를 발행한 워프를 대상으로 우선적으로 정렬할 수 있다. LRR 기반 정렬모듈(320)은 정렬된 워프들을 연산 워프 큐(340)에 삽입할 수 있다.
최근 레지스터(350)는 총 3개의 필드로 구성될 수 있다. 인덱스가 워프 ID(WID)로 설정되며, 최대 48개의 엔트리를 포함할 수 있다. 카운터는 최근 메모리 명령어를 완료한 워프들을 관리하기 위해 워프별 6-비트 카운터로 구성할 수 있다. 카운터 값을 참조하여 최근 발행 완료 워프는 R 비트를 1로 변경할 수 있다.
본 발명에 따른 워프 스케줄러(150)는 각 워프가 수행하는 명령어의 타입에 따라 각각 다른 우선순위 기법을 적용하여 메모리 워프 큐(330)와 연산 워프 큐(340)에 워프들을 정렬하여 저장할 수 있다.
본 발명에 따른 워프 스케줄러(150)는 LRR 방식과 GTO 방식의 이점을 모두 활용하여 고정적으로 적용할 수 있다. 특히 GTO 방식이 가지는 성능 측면의 이점은 워프 내 지역성(intra-warp locality)을 적극적으로 활용하고 자원에 대한 경합 완화라고 할 수 있다.
본 발명에 따른 워프 스케줄러(150)는 메모리 명령어에 대해 GTO 방식과 유사하게 SM(100)에 할당된 시간이 오래된 순서로 워프를 정렬할 수 있다. 따라서, 각 워프가 수행할 다음 명령어는 메모리 명령어 타입 여부에 따라 할당 시간이 오래된 워프가 계속적으로 메모리 자원을 이용할 수 있도록 우선적으로 발행될 수 있다.
명령어 버퍼는 워프 당 최대 2개의 명령어를 명령어 캐시로부터 인출하고 해석하여 정보를 저장할 수 있다. 따라서, 현재 명령어 버퍼에 저장된 명령어를 처리해야만 다음 수행할 명령어를 인출 및 해석할 수 있다.
만약, GTO 방식에 따라 할당 시간이 오래된 워프가 메모리 명령어를 우선적으로 발행하도록 설계하더라도 LRR 방식에 따라 연산 명령어를 발행하는 방식에 영향을 받을 수밖에 없다. 다시 말해, 부분적인 LRR 방식의 영향으로 메모리 명령어를 발행을 할 때, 명령어에 대하여 할당 시간이 오래된 워프들을 그렇지 않은 워프들보다 발행할 기회를 항상 보장하진 못한다.
본 발명에 따른 워프 스케줄러(150)는 최근 메모리 명령어를 완료하여 L1 명령어 캐시(120)에 데이터를 적재한 상태로 추정되는 워프들에 대해 발행 후보 워프로 결정할 수 있다. 최근 메모리 명령어를 완료한 워프는 요청된 데이터가 L1 명령어 캐시(120)에 존재할 확률이 매우 높다. 또한, 메모리 접근을 불특정 워프 그룹으로 한정하여 워프 내 지역성을 향상시킬 수 있다.
일 실시예에서, 활성화 워프에 대해 명령어 처리 여부를 실시간으로 측정하여 최근 발행된 워프로부터 순서대로 활성화 워프의 수/2 개만 별도 그룹으로 분류할 수 있다. 일 실시예에서, 상기 분류된 워프 그룹은 ‘최근 발행 완료 워프’ 또는 이와 동등한 기술적 의미를 갖는 용어로 지칭될 수 있다.
워프 스케줄러(150)가 연산 명령어를 발행할 때 최근 발행 완료 워프를 구분하기 위해, 각 워프별 최근 발행 완료를 나타내는 최근 레지스터(350)가 요구될 수 있다. 이 경우, 예를 들어, SM(100)에서의 최대 할당 가능한 활성화 워프의 수는 48개로 설정될 수 있다.
각 활성화 워프 슬롯(Warp Slot)에서 Load/Store와 같은 메모리 명령어가 완료될 때, 해당 워프 해당하는 카운터를 0으로 리셋할 수 있다. 또한, 다른 워프의 카운터는 모두 1을 증감시킬 수 있다. 또한, 활성화 워프 수(W_Active)를 실시간으로 카운트하여 W_Active/2개의 최근 워프 그룹이 유지되도록 할 수 있다.
만약 최근 워프의 수가 W_Active/2개 이상이 된다면 카운터의 값이 가장 큰 워프를 최근 워프 그룹에서 제외시킬 수 있다. 각 워프별 최근 워프 여부는 최근 비트(Recency Bit)를 통해 관리할 수 있다. 따라서, 실제 워프가 할당된 후 활성화된 워프 수를 측정하고, 이러한 정보를 기반으로 최근 완료된 메모리 워프 수를 측정할 수 있다.
본 발명에 따른 워프 스케줄러(150)는 메모리 명령어를 우선적으로 발행하여 SM(100)에 할당된 시간이 오래된 워프를 우선적으로 발행하고, 더 이상 발행할 수 있는 메모리 명령어가 없거나 메모리 파이프라인에 스톨이 발생해서 해당 사이클에 발행이 불가능하다면 연산 명령어를 수행하는 워프를 발행할 수 있다.
도 4는 본 발명의 일 실시예에 따른 워프 스케줄링 장치의 동작 방법을 도시한 도면이다. 일 실시예에서, 워프 스케줄링 장치는 스트리밍 멀티프로세서(100)의 워프 스케줄러(150)를 포함할 수 있다.
도 4를 참고하면, S401 단계는, 제1 임계값 이상의 지연시간을 발생시키는 메모리 명령어를 실행하는 워프들을 발행하는 단계이다. 일 실시예에서, 메모리 명령어에 대하여 할당시간이 제2 임계값 이상인 워프들을 발행할 수 있다.
일 실시예에서, 메모리 명령어를 실행하는 워프들을 상기 할당시간을 기반으로 정렬하여 메모리 워프 큐에 삽입할 수 있다. 이후, 메모리 워프 큐에 삽입된 워프들의 순서에 따라 메모리 명령어를 실행할 수 있다.
S403 단계는, 메모리 명령어를 실행하는 워프들을 발행한 후, 연산 명령어를 실행하는 워프들을 발행하는 단계이다. 일 실시예에서, 메모리 파이프라인에 스톨(stall)이 발생하는 경우, 연산 명령어를 실행하는 워프들을 발행할 수 있다.
일 실시예에서, 워프 ID(identification)에 따라 연산 명령어를 실행하는 워프들을 정렬하여 연산 워프 큐(computation warp queue)에 삽입할 수 있다. 이후, 연산 워프 큐에 삽입된 워프들의 순서에 따라 연산 명령어를 실행할 수 있다.
일 실시예에서, 활성화 워프(active warp)의 일부를 포함하는 최근 레지스터(recency register)의 최근 비트(recency bit)에 기반하여, 연산 명령어를 실행하는 워프들을 정렬하여 연산 워프 큐(computation warp queue)에 삽입할 수 있다. 예를 들어, 활성화 워프의 일부는 전체 활성화 워프의 절반(half)을 의미할 수 있다.
일 실시예에서, 메모리 명령어를 실행하는 워프들은, 상기 지연시간에 따라 우선순위가 부여되고, 연산 명령어를 실행하는 워프들은, 동일한 우선순위가 부여될 수 있다.
일 실시예에서, 메모리 명령어와 연산 명령어는, 명령어의 타입에 따라 분리하여 저장될 수 있다.
도 5는 본 발명의 일 실시예에 따른 L1 데이터 캐시의 미스 비율 그래프를 도시한 도면이다.
도 5를 참고하면, GTO 방식은 ATAX, MVT, BICG 벤치마크에서 낮은 미스율을 보이지만 MC 벤치마크의 미스율이 LRR에 비해 2.8배 높음을 확인할 수 있다. 본 발명에 따른 워프 스케줄링 기법은 전체 벤치마크에서 낮은 미스율을 보여 L1 데이터 캐시에서의 지역성을 유지하는 것을 확인할 수 있다.
도 6은 본 발명의 일 실시예에 따른 L1 데이터 캐시에 대한 예약 실패 그래프를 도시한 도면이다.
도 6을 참고하면, L1 데이터 캐시 관련 자원인 MSHR 또는 미스 큐(miss queue)의 점유 가능한 엔트리가 부족하거나 캐시 세트에 대한 접근이 빈번한 경우 LD/ST 유닛(190)에 대한 접근이 불가능하다.
이런 경우 예약 실패(reservation fail) 사이클로 정의하며 그 수치를 LRR, GTO 방식과 본 발명에 따른 워프 스케줄링 기법의 결과를 비교할 수 있다.
이 경우, 일부 벤치마크에서는 이러한 스톨 사이클이 증가하지만, 전체 벤치마크에 대한 평균 예약 실패 사이클은 낮은 것을 확인할 수 있다. 따라서, 캐시 효율성과 캐시 자원에 대한 과도한 경합도 측면에서 본 발명에 따른 워프 스케줄링 기법의 우수함을 확인할 수 있다.
도 7은 본 발명의 일 실시예에 따른 스톨 사이클 그래프를 도시한 도면이다.
도 7을 참고하면, 발행 단계에서 연산 자원을 사용할 수 없는 상태로 인해 단 하나의 워프도 발행하지 못하는 스톨 사이클을 측정하고 비교할 수 있다.
이 경우, 본 발명에 따른 워프 스케줄링 기법이 적용된 전자 장치(예: GPU)의 구조는 LRR 방식을 적용한 구조에 비해 23% 감소한다. 따라서, 본 발명에 따른 워프 스케줄링 기법에 의해 지연 시간을 효과적으로 숨겨 성능을 향상시킨 것을 확인할 수 있다. 캐시 효율성, LD/ST 유닛 스톨 수와 함께 모든 워프가 파이프라인 스톨이 되어 긴 지연시간 동안 워프를 발행하지 못하는 사이클 수가 줄어든 것을 확인할 수 있다.
LRR 방식의 높은 병렬성과 워프들에 대한 수행 진행률을 균등하게 만들 수 있다. 본 발명에 따른 워프 스케줄링 기법은 이러한 LRR 방식의 특성을 반영하면서 메모리 접근에 대하여 일부 워프만 주로 허용하도록 할당 시간을 기준으로 메모리 명령어를 발행할 수 있다.
도 8은 본 발명의 일 실시예에 따른 워프 스케줄링 방식에 따른 성능 그래프를 도시한 도면이다.
도 8을 참고하면, LRR 방식과 GTO 방식을 적용한 구조와 함께 본 발명에 따른 워프 스케줄링을 포함하는 다양한 방식들과의 성능을 비교할 수 있다. 즉, 메모리 명령어를 우선적으로 발행하되 그 다음 할당 시간을 기준으로 오래된 워프를 발행하는 MTO(memory then oldest) 방식, 메모리 명령어 중 할당 시간이 오래된 워프를 발행하되 다른 명령어 타입을 수행하는 워프는 라운드 로인 방식으로 발행 순서를 결정하는 MOTRR(memory oldest then round robin) 방식, MOTRR 방식과 함께 최근 메모리 명령어 수행한 워프 정보를 반영하는 방식인 본 발명에 따른 MOTRR+Recency에 대해서 성능을 비교할 수 있다.
성능 비교는 사이클 당 처리 명령어 수인 IPC(instruction per cycle)을 각각 동일한 벤치마크에 대해 측정하고 GTO 방식의 결과에 대해 정규화할 수 있다. MOTRR 방식은 MTO 방식과 다르게 연산 명령어에 대해 공평하게 발행함으로써 더 높은 성능을 보임을 확인할 수 있다. 따라서, 단순히 LRR 방식과 GTO 방식을 별도로 사용하는 것보다 명령어 유형별 다른 방식이 적용된 경우 더 효과적임을 확인할 수 있다.
LPS, STC, SQRNG, MC 벤치마크의 경우 GTO 방식과 MTO 방식 성능 결과가 LRR 성능보다 훨씬 낮은 IPC를 보인다. MOTRR은 LRR 방식에 비해 평균 11.5%, GTO 방식에 비해 평균 4.4% 높은 성능을 보인다.
본 발명의 다양한 실시예에 따른, 최근 메모리 완료 워프 정보를 활용하는 MOTRR+Recency의 IPC는 LRR 방식과 GRO 방식에 대해 각각 12.7%, 5.6%의 평균적인 성능 향상을 보인다.
다양한 벤치마크에 대해 LRR 방식과 GTO 방식은 서로 다른 성능 양상을 보인다. 따라서 일부 벤치마크에서는 LRR 방식이 GTO에 비해 높은 성능을 보인다. 본 발명에 따른 MOTRR+Recency 방식은 ATAX, MVT, BICG에서 상당한 성능 향상을 보인다. 특히 MVT 벤치마크의 경우 MOTRR+Recency 방식으로 인한 성능이 MOTRR에 비해 3.1% 향상됨을 확인할 수 있다.
이상의 설명은 본 발명의 기술적 사상을 예시적으로 설명한 것에 불과한 것으로, 통상의 기술자라면 본 발명의 본질적인 특성이 벗어나지 않는 범위에서 다양한 변경 및 수정이 가능할 것이다.
따라서, 본 명세서에 개시된 실시예들은 본 발명의 기술적 사상을 한정하기 위한 것이 아니라, 설명하기 위한 것이고, 이러한 실시예들에 의하여 본 발명의 범위가 한정되는 것은 아니다.
본 발명의 보호범위는 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 이해되어야 한다.
100: 스트리밍 멀티프로세서
110: 명령어 버퍼
120: L1 명령어 캐시
130: 스코어보드
140: 레지스터 파일
150: 워프 스케줄링
160: 명령어 실행부
210: GTO 방식
220: MTO 방식
230: MOTRR 방식
310: GTO 기반 정렬모듈
320: LRR 기반 정렬모듈
330: 메모리 워프 큐
340: 연산 워프 큐
350: 최근 레지스터

Claims (20)

  1. (a) 제1 임계값 이상의 지연시간(latency)을 발생시키는 메모리 명령어(memory instruction)를 실행하는 워프들을 발행(issue)하는 단계; 및
    (b) 상기 메모리 명령어를 실행하는 워프들을 발행한 후, 연산 명령어(computation)를 실행하는 워프들을 발행하는 단계;
    를 포함하고,
    상기 메모리 명령어를 실행하는 워프들은, 상기 지연시간에 따라 우선순위가 부여되고,
    상기 연산 명령어를 실행하는 워프들은, 동일한 우선순위가 부여되는,
    워프 스케줄링 방법.
  2. 제1항에 있어서,
    상기 (a) 단계는,
    상기 메모리 명령어에 대하여 할당시간이 제2 임계값 이상인 워프들을 발행하는 단계;
    를 포함하는,
    워프 스케줄링 방법.
  3. 제2항에 있어서,
    상기 (a) 단계 이후에,
    상기 메모리 명령어를 실행하는 워프들을 상기 할당시간을 기반으로 정렬하여 메모리 워프 큐(memory warp queue)에 삽입하는 단계;
    를 더 포함하는,
    워프 스케줄링 방법.
  4. 제3항에 있어서,
    상기 삽입하는 단계 이후에,
    상기 메모리 워프 큐에 삽입된 워프들의 순서에 따라 상기 메모리 명령어를 실행하는 단계;
    를 더 포함하는,
    워프 스케줄링 방법.
  5. 제1항에 있어서,
    상기 (b) 단계는,
    메모리 파이프라인에 스톨(stall)이 발생하는 경우, 상기 연산 명령어를 실행하는 워프들을 발행하는 단계;
    를 포함하는,
    워프 스케줄링 방법.
  6. 제1항에 있어서,
    상기 (b) 단계 이후에,
    워프 ID(identification)에 따라 상기 연산 명령어를 실행하는 워프들을 정렬하여 연산 워프 큐(computation warp queue)에 삽입하는 단계;
    를 더 포함하는,
    워프 스케줄링 방법.
  7. 제6항에 있어서,
    상기 삽입하는 단계 이후에,
    상기 연산 워프 큐에 삽입된 워프들의 순서에 따라 상기 연산 명령어를 실행하는 단계;
    를 더 포함하는,
    워프 스케줄링 방법.
  8. 제1항에 있어서,
    상기 (b) 단계 이후에,
    활성화 워프(active warp)의 일부를 포함하는 최근 레지스터(recency register)의 최근 비트(recency bit)에 기반하여, 상기 연산 명령어를 실행하는 워프들을 정렬하여 연산 워프 큐(computation warp queue)에 삽입하는 단계;
    를 더 포함하는,
    워프 스케줄링 방법.
  9. 삭제
  10. 제1항에 있어서,
    상기 메모리 명령어와 상기 연산 명령어는, 명령어의 타입에 따라 분리하여 저장되는,
    워프 스케줄링 방법.
  11. 제1 임계값 이상의 지연시간(latency)을 발생시키는 메모리 명령어(memory instruction)를 실행하는 워프들을 발행(issue)하고,
    상기 메모리 명령어를 실행하는 워프들을 발행한 후, 연산 명령어(computation)를 실행하는 워프들을 발행하는,
    워프 스케줄러;
    를 포함하고,
    상기 메모리 명령어를 실행하는 워프들은, 상기 지연시간에 따라 우선순위가 부여되고,
    상기 연산 명령어를 실행하는 워프들은, 동일한 우선순위가 부여되는,
    워프 스케줄링 장치.
  12. 제11항에 있어서,
    상기 워프 스케줄러는,
    상기 메모리 명령어에 대하여 할당시간이 제2 임계값 이상인 워프들을 발행하는,
    워프 스케줄링 장치.
  13. 제12항에 있어서,
    상기 워프 스케줄러는,
    상기 메모리 명령어를 실행하는 워프들을 상기 할당시간을 기반으로 정렬하여 메모리 워프 큐(memory warp queue)에 삽입하는,
    워프 스케줄링 장치.
  14. 제13항에 있어서,
    상기 워프 스케줄러는,
    상기 메모리 워프 큐에 삽입된 워프들의 순서에 따라 상기 메모리 명령어를 실행하는,
    워프 스케줄링 장치.
  15. 제11항에 있어서,
    상기 워프 스케줄러는,
    메모리 파이프라인에 스톨(stall)이 발생하는 경우, 상기 연산 명령어를 실행하는 워프들을 발행하는,
    워프 스케줄링 장치.
  16. 제11항에 있어서,
    상기 워프 스케줄러는,
    워프 ID(identification)에 따라 상기 연산 명령어를 실행하는 워프들을 정렬하여 연산 워프 큐(computation warp queue)에 삽입하는,
    워프 스케줄링 장치.
  17. 제16항에 있어서,
    상기 연산 워프 큐에 삽입된 워프들의 순서에 따라 상기 연산 명령어를 실행하는 단계;
    를 더 포함하는,
    워프 스케줄링 장치.
  18. 제11항에 있어서,
    상기 워프 스케줄러는,
    활성화 워프(active warp)의 일부를 포함하는 최근 레지스터(recency register)의 최근 비트(recency bit)에 기반하여, 상기 연산 명령어를 실행하는 워프들을 정렬하여 연산 워프 큐(computation warp queue)에 삽입하는,
    워프 스케줄링 장치.
  19. 삭제
  20. 제11항에 있어서,
    상기 메모리 명령어와 상기 연산 명령어는, 명령어의 타입에 따라 분리하여 저장되는,
    워프 스케줄링 장치.

KR1020190036886A 2019-03-29 2019-03-29 긴 지연시간 숨김 기반 워프 스케줄링을 위한 방법 및 장치 KR102210765B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190036886A KR102210765B1 (ko) 2019-03-29 2019-03-29 긴 지연시간 숨김 기반 워프 스케줄링을 위한 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190036886A KR102210765B1 (ko) 2019-03-29 2019-03-29 긴 지연시간 숨김 기반 워프 스케줄링을 위한 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20200114702A KR20200114702A (ko) 2020-10-07
KR102210765B1 true KR102210765B1 (ko) 2021-02-01

Family

ID=72884239

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190036886A KR102210765B1 (ko) 2019-03-29 2019-03-29 긴 지연시간 숨김 기반 워프 스케줄링을 위한 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102210765B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102602844B1 (ko) * 2023-04-12 2023-11-15 고려대학교 산학협력단 그래픽스 프로세서의 워프 구조를 고려한 메모리 컨트롤러 및 그것을 이용한 메모리 컨트롤 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110219221A1 (en) 2010-03-03 2011-09-08 Kevin Skadron Dynamic warp subdivision for integrated branch and memory latency divergence tolerance
KR101853648B1 (ko) * 2018-03-13 2018-06-08 전남대학교 산학협력단 캐쉬 우회 기법, 그 기법이 적용된 스트리밍 멀티프로세서 및 임베디드 시스템
KR101940523B1 (ko) * 2018-04-30 2019-01-21 전남대학교산학협력단 워프 스케줄링을 위한 장치 및 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9804666B2 (en) * 2015-05-26 2017-10-31 Samsung Electronics Co., Ltd. Warp clustering

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110219221A1 (en) 2010-03-03 2011-09-08 Kevin Skadron Dynamic warp subdivision for integrated branch and memory latency divergence tolerance
KR101853648B1 (ko) * 2018-03-13 2018-06-08 전남대학교 산학협력단 캐쉬 우회 기법, 그 기법이 적용된 스트리밍 멀티프로세서 및 임베디드 시스템
KR101940523B1 (ko) * 2018-04-30 2019-01-21 전남대학교산학협력단 워프 스케줄링을 위한 장치 및 방법

Also Published As

Publication number Publication date
KR20200114702A (ko) 2020-10-07

Similar Documents

Publication Publication Date Title
Rogers et al. Cache-conscious wavefront scheduling
Yoon et al. Virtual thread: Maximizing thread-level parallelism beyond GPU scheduling limit
US7949855B1 (en) Scheduler in multi-threaded processor prioritizing instructions passing qualification rule
Xiang et al. Warp-level divergence in GPUs: Characterization, impact, and mitigation
US8898435B2 (en) Optimizing system throughput by automatically altering thread co-execution based on operating system directives
US9652243B2 (en) Predicting out-of-order instruction level parallelism of threads in a multi-threaded processor
US20070143582A1 (en) System and method for grouping execution threads
US10268519B2 (en) Scheduling method and processing device for thread groups execution in a computing system
Xiang et al. Exploiting uniform vector instructions for GPGPU performance, energy efficiency, and opportunistic reliability enhancement
US8898390B2 (en) Scheduling workloads based on cache asymmetry
Lakshminarayana et al. Effect of instruction fetch and memory scheduling on GPU performance
US10019283B2 (en) Predicting a context portion to move between a context buffer and registers based on context portions previously used by at least one other thread
US11537397B2 (en) Compiler-assisted inter-SIMD-group register sharing
KR101940523B1 (ko) 워프 스케줄링을 위한 장치 및 방법
Yu et al. Smguard: A flexible and fine-grained resource management framework for gpus
US8490071B2 (en) Shared prefetching to reduce execution skew in multi-threaded systems
KR101177059B1 (ko) 병렬 제어 모듈을 동적으로 할당하는 방법
Awatramani et al. Phase aware warp scheduling: Mitigating effects of phase behavior in gpgpu applications
US20110276979A1 (en) Non-Real Time Thread Scheduling
JPH06110688A (ja) 複数の順序外れ命令を並行処理するためのコンピュータ・システム
KR102210765B1 (ko) 긴 지연시간 숨김 기반 워프 스케줄링을 위한 방법 및 장치
US20220207643A1 (en) Implementing heterogenous wavefronts on a graphics processing unit (gpu)
KR20230070247A (ko) 다수의 페치 및 디코드 파이프라인을 갖는 프로세서
Lv et al. Dynamic I/O-aware scheduling for batch-mode applications on chip multiprocessor systems of cluster platforms
Orosa et al. Flexsig: Implementing flexible hardware signatures

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant