KR101136850B1 - 중앙 처리 장치, 그것의 gpu 시뮬레이션 방법 그리고 그것을 포함하는 컴퓨팅 시스템 - Google Patents

중앙 처리 장치, 그것의 gpu 시뮬레이션 방법 그리고 그것을 포함하는 컴퓨팅 시스템 Download PDF

Info

Publication number
KR101136850B1
KR101136850B1 KR1020100071036A KR20100071036A KR101136850B1 KR 101136850 B1 KR101136850 B1 KR 101136850B1 KR 1020100071036 A KR1020100071036 A KR 1020100071036A KR 20100071036 A KR20100071036 A KR 20100071036A KR 101136850 B1 KR101136850 B1 KR 101136850B1
Authority
KR
South Korea
Prior art keywords
simulation
cores
gpu
threads
processing unit
Prior art date
Application number
KR1020100071036A
Other languages
English (en)
Other versions
KR20120009919A (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 KR1020100071036A priority Critical patent/KR101136850B1/ko
Priority to US13/811,436 priority patent/US9378533B2/en
Priority to PCT/KR2010/009416 priority patent/WO2012011644A1/ko
Publication of KR20120009919A publication Critical patent/KR20120009919A/ko
Application granted granted Critical
Publication of KR101136850B1 publication Critical patent/KR101136850B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명의 목적은 향상된 GPU 시뮬레이션 속도를 가지는 중앙 처리 장치(GPU 시뮬레이터), 그리고 그것을 포함하는 컴퓨팅 시스템을 제공하는 데에 있다. 또한, 본 발명의 목적은 향상된 속도를 가지는 GPU 시뮬레이션 방법을 제공하는데에 있다. 본 발명의 실시 예에 따른 복수의 코어(Multi Core)들을 포함하는 중앙 처리 장치(CPU)는 주 쓰레드에 대응되는 상위 코어, 및 각각 적어도 하나의 작업 쓰레드에 대응되는 복수의 하위 코어들을 포함하되, 상기 적어도 하나의 작업 쓰레드는 GPU(Graphics Processing Unit)의 연산 유닛들에 대한 시뮬레이션 연산들을 수행하여 시뮬레이션 데이터를 생성하고, 상기 주 쓰레드는 상기 GPU의 연산 유닛들에 대한 시뮬레이션 연산들을 상기 적어도 하나의 작업 쓰레드에 할당하고, 상기 시뮬레이션 데이터에 기반하여 동기화(synchronization) 데이터를 생성한다.

Description

중앙 처리 장치, 그것의 GPU 시뮬레이션 방법 그리고 그것을 포함하는 컴퓨팅 시스템{CENTRAL PROCESSING UNIT, GRAPHICS PROCESSING UNIT SIMULATING METHOD THEREOF AND COMPUTING SYSTEM INCLUDING THE SAME}
본 발명은 GPU 시뮬레이션을 수행하는 중앙 처리 장치, 그것의 GPU 시뮬레이션 방법 그리고 그것을 포함하는 컴퓨팅 시스템에 관한 것이다.
최근 들어, 첨단 컴퓨터 애플리케이션(application)들이 더욱 복잡해지고, 이를 처리하는 시스템들에 대한 요구들이 증가함에 따라, 더 높은 연산 처리량(computational throughput)에 대한 요구도 커지고 있다. 특히, 그래픽 애플리케이션들은, 바람직한 시각 효과들을 성취하기 위해 짧은 시간 동안 막대한 횟수의 데이터 접근들, 데이터 연산들, 및 데이터 조작들을 필요로 한다. 따라서, 그래픽 애플리케이션들에는 향상된 데이터 연산 처리량이 요구된다. 특히, 실시간 멀티미디어 애플리케이션들은 초당 수천 메가 비트의 빠른 처리 속도를 필요로 한다.
2차원(two dimensions,2D) 또는 3차원(three dimensions,3D) 그래픽 연산의 가속화를 위하여 개발된 GPU(Graphics Processing Unit)는 구조적으로 그래픽 연산에 최적화된 특수 목적 연산 프로세서의 형태를 취한다. 그래픽 관련 연산이 정교해지고 복잡해지면서, 현대의 GPU는 멀티 코어 CPU(Multi Core Central Process Unit)와 유사한 형태의 구조로 발전하고 있다. 그리고, 이러한 특성을 활용하여, GPU를 CPU와 같은 범용 목적 연산에 활용하는 범용 GPU(GPGPU: General Purpose computation on Graphics Processing Unit)가 개발되고 있다.
그래픽 처리는 동시에 방대한 양의 연산들을 처리해야 하는데, 이러한 연산들은 서로 의존성이 없는 경우가 많다. 멀티 코어 CPU와 유사한 형태를 가지는 GPU의 구조는 의존성이 없는 연산들을 병렬처리하는데 있어서 효과적이다.
GPU를 효과적으로 모델링하고, GPU의 성능을 개선하고, 새로운 GPU를 개발하기 위하여 GPU 시뮬레이터와 소스 코드 동적 분석 도구들이 요구된다. 이러한 요구에 따라 GPU 시뮬레이터와 소스 코드 동적 분석 도구들이 활발히 개발되고 있다.
본 발명의 목적은 향상된 GPU 시뮬레이션 속도를 가지는 중앙 처리 장치, 그리고 그것을 포함하는 컴퓨팅 시스템을 제공하는 데에 있다. 또한, 본 발명의 목적은 향상된 속도를 가지는 GPU 시뮬레이션 방법을 제공하는데에 있다.
상기 목적을 달성하기 위한 복수의 코어(Multi Core)들을 포함하는 중앙 처리 장치의 GPU(Graphics Processing Unit) 시뮬레이션 방법은 주 쓰레드(Thread)를 생성하고, 상기 주 쓰레드를 상기 코어들 중 어느 하나에 대응시키는 단계; 복수의 작업 쓰레드들을 생성하고, 상기 작업 쓰레드들을 상기 코어들에 대응시키는 단계; 상기 주 쓰레드의 제어에 따라 GPU(Graphics Processing Unit)의 연산 유닛들에 대한 시뮬레이션 연산들을 상기 작업 쓰레드들에 할당하는 단계; 상기 작업 쓰레드들에서 상기 할당된 시뮬레이션 연산들을 수행하고, 시뮬레이션 데이터를 출력하는 단계; 및 상기 주 쓰레드에서 상기 시뮬레이션 데이터에 기반하여 동기화(synchronization) 데이터를 생성하는 단계를 포함한다.
실시 예로서, 상기 주 쓰레드는 상기 작업 쓰레드들의 상위 쓰레드일 수 있다.
실시 예로서, 상기 복수의 작업 쓰레드들을 생성하는 단계는 상기 코어들의 개수에 기반하여 작업 쓰레드들을 생성하는 단계를 포함할 수 있다.
실시 예로서, 상기 복수의 작업 쓰레드들을 생성하는 단계는 상기 코어들 중 상기 주 쓰레드에 대응하는 코어를 제외한 코어들의 개수만큼 상기 작업 쓰레드들을 생성하는 단계를 포함할 수 있다.
실시 예로서, 상기 작업 쓰레드들을 상기 코어들에 대응시키는 단계는 상기 주 쓰레드의 제어에 따라 수행된다.
실시 예로서, 상기 작업 쓰레드들을 상기 코어들에 대응시키는 단계는 상기 작업 쓰레드들을 상기 코어들 중 상기 주 쓰레드에 대응하는 코어를 제외한 코어들에 대응시키는 단계를 포함할 수 있다.
실시 예로서, 상기 동기화 데이터를 생성하는 단계는 상기 출력된 시뮬레이션 데이터를 저장하고 상기 저장된 시뮬레이션 데이터에 기반하여 상기 동기화 데이터를 생성하는 단계를 포함할 수 있다.
실시 예로서, 상기 동기화 데이터를 생성하는 단계는 상기 할당된 시뮬레이션 연산들이 종료될 때, 상기 저장된 시뮬레이션 데이터에 기반하여 상기 동기화 데이터를 생성하는 단계를 포함할 수 있다.
본 발명의 다른 일면은 복수의 코어(Multi Core)들을 포함하는 중앙 처리 장치(CPU)에 관한 것이다. 본 발명의 실시 예에 따른 중앙 처리 장치(CPU)는 주 쓰레드(thread)에 대응되는 상위 코어; 적어도 하나의 작업 쓰레드에 대응되는 하위 코어를 복수 개 포함하되, 상기 적어도 하나의 작업 쓰레드는 GPU(Graphics Processing Unit)의 연산 유닛들에 대한 시뮬레이션 연산들을 수행하여 시뮬레이션 데이터를 생성하고, 상기 주 쓰레드는 상기 GPU의 연산 유닛들에 대한 시뮬레이션 연산들을 상기 적어도 하나의 작업 쓰레드에 할당하고, 상기 시뮬레이션 데이터에 기반하여 동기화(synchronization) 데이터를 생성한다.
실시 예로서, 상기 주 쓰레드는 상기 적어도 하나의 작업 쓰레드의 상위 쓰레드일 수 있다.
실시 예로서, 상기 주 쓰레드는 상기 하위 코어들의 개수에 기반하여 상기 적어도 하나의 작업 쓰레드를 생성할 수 있다.
실시 예로서, 상기 주 쓰레드는 상기 하위 코어들의 개수만큼 상기 적어도 하나의 작업 쓰레드를 생성할 수 있다.
실시 예로서, 상기 상위 코어는 상기 생성된 시뮬레이션 데이터를 저장하고, 상기 주 쓰레드는 상기 저장된 시뮬레이션 데이터에 기반하여 동기화 데이터를 생성할 수 있다.
실시 예로서, 상기 주 쓰레드는 상기 GPU의 연산 유닛들에 대한 시뮬레이션 연산들이 종료될 때, 상기 저장된 시뮬레이션 데이터에 기반하여 동기화 데이터를 생성할 수 있다.
본 발명의 실시 예에 따른 컴퓨팅 시스템은 복수의 코어(Multi Core)들을 포함하는 중앙 처리 장치(CPU); GPU(Graphics Processing Unit) 시뮬레이션 코드를 저장하는 램(Random Acess Memory,RAM)을 포함하되, 상기 중앙 처리 장치는 주 쓰레드(thread)에 대응되는 상위 코어; 적어도 하나의 작업 쓰레드에 대응되는 하위 코어를 복수 개 포함하되, 상기 주 쓰레드는 상기 GPU의 연산 유닛들에 대한 시뮬레이션 연산들을 상기 적어도 하나의 작업 쓰레드에 할당하고, 상기 적어도 하나의 작업 쓰레드에서 생성된 시뮬레이션 데이터에 기반하여 동기화(synchronization) 데이터를 생성하고, 상기 적어도 하나의 작업 쓰레드는 각각에 할당된 상기 GPU의 연산 유닛들에 대한 시뮬레이션 연산들을 수행하여 시뮬레이션 데이터를 생성한다.
실시 예로서, 상기 주 쓰레드는 상기 하위 코어들의 개수에 기반하여 상기 적어도 하나의 작업 쓰레드를 생성할 수 있다.
실시 예로서, 상기 주 쓰레드는 상기 GPU 시뮬레이션 코드를 로드할 수 있다.
실시 예로서, 상기 주 쓰레드는 상기 GPU 시뮬레이션 코드에 기반하여 상기 GPU의 연산 유닛들에 대한 시뮬레이션 연산들을 상기 적어도 하나의 작업 쓰레드에 할당할 수 있다.
실시 예로서, 상기 램은 상기 적어도 하나의 작업 쓰레드에서 생성된 상기 시뮬레이션 데이터를 저장할 수 있다.
실시 예로서, 상기 램은 상기 적어도 하나의 작업 쓰레드에서 상기 GPU의 연산 유닛들에 대한 시뮬레이션 연산들이 종료될 때, 상기 시뮬레이션 데이터를 상기 상위 코어에 제공할 수 있다.
실시 예로서, 상기 주 쓰레드는 상기 GPU의 연산 유닛들에 대한 시뮬레이션 연산들이 종료될 때, 상기 시뮬레이션 데이터에 기반하여 동기화 데이터를 생성할 수 있다.
본 발명의 실시 예에 따르면, 중앙 처리 장치에서 복수의 코어에 대응하는 작업 쓰레드들을 생성하고, 작업 쓰레드에서 병렬적으로 GPU 시뮬레이션이 수행된다. 따라서, 향상된 GPU 시뮬레이션 속도를 가지는 중앙 처리 장치, 그리고 그것을 포함하는 컴퓨팅 시스템이 제공된다. 또한, 향상된 속도를 가지는 GPU 시뮬레이션 방법이 제공된다.
도 1은 컴퓨팅 시스템을 보여주는 블록도이다.
도 2는 도 1의 GPU의 제 1 연산부를 보여주는 블록도이다.
도 3은 도 1에 도시된 GPU에 대한 시뮬레이션을 수행하는 방법을 보여주는 순서도이다.
도 4는 중앙 처리 장치, 램 및 시스템 버스를 보여주는 블록도이다.
도 5a 내지 도 5c는 주 쓰레드 및 작업 쓰레드들의 데이터 처리 과정을 보여주는 블록도이다.
도 6은 본 발명의 실시 예에 따른 GPU 시뮬레이션을 수행하는 방법을 보여주는 순서도이다.
도 7은 본 발명의 다른 실시 예에 따라 하나의 코어에 하나의 작업 쓰레드가 대응되는 경우를 보여주는 블록도이다.
이하의 설명은 사실상 예시적인 것에 불과하고 본 출원의 기술적 사상의 범위를 제한하기 위한 것이 아니다. 앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다. 참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
A, B 및 C 중 적어도 하나라는 표현은 배타적 논리 or를 사용하는 것이 아닌 논리 (A or B or C)를 의미하는 것으로 해석된다. 그리고 본 발명의 원리를 변경하지 않는 한, 방법 안의 단계들은 다른 순서로 실행될 수 있다고 이해되어야 한다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명한다.
도 1은 컴퓨팅 시스템(100)을 보여주는 블록도이다. 도 1을 참조하면, 컴퓨팅 시스템(100)은 중앙 처리 장치(CPU,110), 램(120, RAM, Random Access Memory), 사용자 인터페이스(130), 전원(140), 시스템 버스(150), 불휘발성 메모리 장치(160), 그리고 GPU(170)를 포함한다.
중앙 처리 장치(110)는 제 1 내지 제 N 코어(111~11N)를 포함한다. 예를 들면, 중앙 처리 장치(110)는 4개의 코어들을 포함할 수 있다. 예를 들면, 중앙 처리 장치(110)는 8개의 코어들을 포함할 수 있다.
중앙 처리 장치(110)는 컴퓨팅 시스템(100)의 제반 동작을 제어하도록 구성된다. 중앙 처리 장치(110) 또는 GPU(170)에 의해 처리된 데이터는 불휘발성 메모리 장치(160)에 저장될 수 있다. 사용자 인터페이스(130)를 통해 제공된 데이터는 불휘발성 메모리 장치(160)에 저장될 수 있다. 사용자 인터페이스(130)는 사용자(user)로부터 데이터를 수신하여 컴퓨팅 시스템(100)에 제공할 것이다.
램(120)은 중앙 처리 장치(110) 또는 GPU(170)에서 연산될 데이터를 저장할 수 있다. 램(120)은 불휘발성 메모리 장치(160)의 데이터를 저장할 수 있다. 그리고 중앙 처리 장치(110) 또는 GPU(170)의 호출에 응답하여 저장된 데이터를 중앙 처리 장치(110) 또는 GPU(170)에 제공할 것이다.
시스템 버스(150)는 컴퓨팅 시스템(100)에 포함된 구성들간의 데이터 통신 기능을 제공한다. 시스템 버스(150)가 AGP(advanced graphics port) 버스인 경우, 충분한 그래픽 데이터가 GPU로 전달될 수 없다. 이 경우, 그래픽 데이터는 AGP 버스를 통과하지 않고, GPU에 포함된 로컬 메모리에 저장될 것이다.
GPU(170)는 시스템 버스(150)를 통해, 중앙 처리 장치(110), 램(120), 사용자 인터페이스(130), 전원(140), 그리고 불휘발성 메모리 장치(160)에 전기적으로 연결된다. GPU(170)는 그래픽 데이터를 처리한다. GPU(170)는 시스템 버스(150)를 통해 데이터를 수신한다. 그리고 모니터(미도시) 또는 다른 디스플레이 장치(display device) 상의 디스플레이를 위한 그래픽 및 비디오 이미지들을 발생시킨다. 예시적으로, GPU(170)은 범용 GPU(General Purpose computation on Graphics Processing Unit)일 수 있다. 예시적으로, 컴퓨팅 시스템(100)은 하나 이상의 GPU들을 포함할 수 있다. GPU(170)는 CPU와 같이 범용 목적 연산에 활용될 수 있다(범용 GPU).
본 발명의 실시 예에 따르면, 컴퓨팅 시스템(100)은 GPU(170)를 포함하지 않고 GPU를 활용하는 범용 목적 연산을 처리할 수 있다. GPU(170)에 포함된 연산 유닛들(이는 도 2에서 상세히 설명된다.)에 대한 시뮬레이션이 수행되어 GPU(170)가 포함된 것과 마찬가지로 GPU를 활용하는 범용 목적 연산을 처리할 수 있다.
도 2는 도 1의 GPU(170)의 제 1 연산부(200)를 보여주는 블록도이다. 제 1 연산부(200)는 제 1 내지 제 R 연산 블록들(210~2R0)을 포함한다. 제 1 연산 블록(210)은 캐시(211), 멀티 쓰레드 이슈(Multi Thread issue) 블록(212), 복수의 SP(Scalar Processor) 블록들(213), SFU(Super Function Unit) 블록들(214) 및 연산 블록 메모리(215)를 포함한다. 도 2에 도시되지 않으나, 제 2 내지 제 R 연산 블록들(220~2R0)은 제 1 연산 블록(210)과 마찬가지로 구성될 것이다.
캐시(211)는 SP 블록들(213) 또는 SFU 블록들(214)에서 처리될 데이터를 저장한다. 멀티 쓰레드 이슈 블록(212)은 SP 블록들(213) 또는 SFU 블록들(214)에서 처리될 연산자를 저장한다.
SP 블록들(213)은 SFU 블록들(214)에 비해 단순한 연산을 수행한다. 예를 들면, SP 블록들(213)은 각각 ALU 연산을 수행할 수 있다. SFU 블록들(214)은 SP 블록들(213)에서 수행하기 어려운 특수 연산을 수행한다. 예를 들면, SFU 블록들(214)는 제곱근 연산(square root), 지수승 연산(exponentiation), 삼각함수 연산(trigonometric) 등을 수행할 수 있다. 그리고 연산 블록 메모리(215)는 SP 블록들(213) 및 SFU 블록들(214)에서 처리된 데이터를 저장한다. 저장된 데이터는 외부로부터의 호출에 응답하여 외부로 출력될 것이다.
캐시(211)에 저장된 데이터는 멀티 쓰레드 이슈 블록(212)에 전송된다. 그리고 멀티 쓰레드 이슈 블록(212)은 멀티 쓰레드 이슈 블록(212)에 저장된 연산자 및 캐시(211)로부터 전송된 데이터를 SP 블록들(213) 및 SFU 블록들(214)에 할당한다. SP 블록들(213) 및 SFU 블록들(214)은 각각 수신된 연산자 및 데이터를 처리한다. 처리된 데이터는 연산 블록 메모리(215)에 저장된다. 그리고 외부로부터의 호출 신호(미도시)에 응답하여, 연산 블록 메모리(215)에 저장된 데이터는 외부로 출력될 것이다. 이하, SP 블록들(213) 및 SFU 블록들(214)은 "GPU 연산 유닛"이라고 한다.
도 2에 도시된 바와 같이, 제 1 연산 블록(210)의 GPU 연산 유닛들은 각각 할당된 데이터를 처리한다. 즉, 제 1 연산 블록(210)은 병렬적으로 데이터를 처리한다. 마찬가지로 제 1 연산부(200)에 포함된 제 1 내지 제 R 연산 블록(210~2R0)은 각각 할당된 데이터를 처리할 것이다.
중앙 처리 장치(110)에서 GPU 연산 유닛들에 대한 시뮬레이션을 수행하는 경우, 복수의 코어들(111~11N)을 이용하여 GPU 연산 유닛들에 대해 병렬적으로 시뮬레이션이 수행될 수 있을 것이다.
도 1에 하나의 중앙 처리 장치(110)를 포함하는 것으로 도시되나, 이는 예시적인 것으로서 컴퓨팅 시스템(100)은 복수의 중앙 처리 장치들을 포함할 수 있을 것이다. 이 경우, 복수의 중앙 처리 장치들을 이용하여 GPU 연산 유닛들에 대해 병렬적으로 시뮬레이션이 수행될 수 있을 것이다.
도 3은 GPU 시뮬레이션을 수행하는 방법을 보여주는 순서도이다. 도 3을 참조하면, S11단계에서, GPU 연산 유닛들 각각에 대한 시뮬레이션이 수행된다. 예시적으로, GPU(170)에 의해 처리될 연산이 호출되는 경우, GPU 시뮬레이션 코드가 수행되어 GPU 연산 유닛들에 대한 시뮬레이션이 수행된다. 중앙 처리 장치(110)는 램(120)으로부터 GPU 시뮬레이션 코드를 로드하고, 로드된 GPU 시뮬레이션 코드를 이용하여 GPU 연산 유닛들에 대한 시뮬레이션을 수행할 것이다. 예시적으로 GPU 시뮬레이션 코드는 불휘발성 메모리 장치(160)로부터 로드될 수도 있을 것이다. 중앙 처리 장치(110)는 복수의 코어들 중 하나의 코어를 이용하여 GPU 연산 유닛들에 대한 시뮬레이션을 수행한다.
S12단계에서, 모든 GPU 연산 유닛들에 대한 시뮬레이션이 수행되었는지가 검증된다. 모든 연산 유닛들에 대한 시뮬레이션이 수행되지 않은 경우, 시뮬레이션이 수행되지 않은 연산 유닛들에 대해 계속 시뮬레이션이 수행된다(S11). 모든 연산 유닛들에 대한 시뮬레이션이 수행된 경우, 시뮬레이션은 종료된다. 단지 하나의 코어가 이용되어 연산 유닛들에 대한 시뮬레이션이 수행되는 경우, 효율적인 GPU 시뮬레이션 러닝 타임(running time)이 보장되지 않을 것이다.
도 4는 중앙 처리 장치(110), 램(120) 및 시스템 버스(150)를 보여주는 블록도이다. 도 4를 참조하면, 중앙 처리 장치(110) 및 램(120)은 시스템 버스(150)를 통하여 전기적으로 연결된다. 중앙 처리 장치(100)는 복수의 코어들(111~11N)을 포함한다. 램(120)은 GPU 시뮬레이션 코드 및 시뮬레이션이 수행될 객체 데이터를 저장한다. 이하, GPU 시뮬레이션 코드 및 시뮬레이션이 수행될 객체 데이터를 "처리될 데이터"라고 한다.
램(120)에 저장된 처리될 데이터는 시스템 버스(150)를 통하여 중앙 처리 장치(110)에 전송된다. 예를 들면, 중앙 처리 장치(110)로부터의 호출 신호(미도시)에 응답하여, 램(120)에 저장된 처리될 데이터가 중앙 처리 장치(110)에 전송된다. 도 4에 도시되지는 않으나, 예시적으로 램(120)은 불휘발성 메모리 장치(160)로부터 시스템 버스(150)를 통하여 처리될 데이터를 로드할 수 있다. 그리고 램(120)에 저장된 처리될 데이터는 시스템 버스(150)를 통하여 중앙 처리 장치(110)에 전송될 것이다.
중앙 처리 장치(110)는 쓰레드(thread) 단위로 동작한다. 예시적으로, 쓰레드(main thread)는 OS(operation system)에 의하여 생성될 수 있다. 중앙 처리 장치(110)는 쓰레드를 생성하고, 연산량이 적은 코어에 쓰레드를 배치하고, 쓰레드에서 연산이 수행될 수 있다. 이처럼 복수의 코어들(111~11N)을 이용하여 데이터를 처리하게 되면, 복수의 코어들(111~11N) 중에서 연산량이 가장 적은 코어에 쓰레드를 배치하게 된다.
각 쓰레드에 대응되는 코어는 각 쓰레드들의 하위 쓰레드들을 생성할 수 있다. 생성된 하위 쓰레드들은 각각 복수의 코어들(111~11N) 중 어느 하나에 대응될 것이다. 본 발명의 실시 예에 따르면, 생성된 주 쓰레드는 복수의 코어들 중 어느 하나(도 4에서, 제 1 코어(111))에 대응된다. 주 쓰레드에 대응하는 코어는 복수의 하위 쓰레드들을 생성할 수 있다. 생성된 하위 쓰레드들은, 주 쓰레드에 대응하는 코어를 제외한 복수의 코어들 중 어느 하나(도 4에서, 제 2 내지 N 코어(112~11N))에 대응된다. 예를 들면, 중앙 처리 장치(110)에 8개의 코어가 포함된 경우, 주 쓰레드와 대응되는 코어를 제외한 7개의 코어들 각각에 M개의 하위 쓰레드가 생성될 수 있다. 도 4에서, 제 1 코어(111)가 주 쓰레드에 대응되는 것으로 도시되나, 이는 예시적인 것으로, 제 2 내지 제 N 코어(112~11N) 중 어느 하나가 주 쓰레드에 대응될 수 있다.
본 발명의 실시 예에 따르면, 주 쓰레드에 대응되는 코어는 중앙처리장치(110)에 포함된 코어들의 개수에 기반하여 적어도 하나의 하위 쓰레드(이하, 작업 쓰레드(worker thread)라고 한다)를 생성한다. 그리고 주 쓰레드에 대응되는 코어는 GPU 시뮬레이션을 제어한다. 각각의 작업 쓰레드에 대응되는 코어는 GPU 연산 유닛들에 대한 시뮬레이션을 수행한다.
작업 쓰레드의 수는 중앙 처리 장치(110)에 포함된 코어의 수에 의해서 결정될 수 있다. 주 쓰레드에 대응하는 코어는 각 작업 쓰레드를 중앙 처리 장치(110)에 포함된 코어들 중 주 쓰레드에 대응하는 코어(111)를 제외한 코어들(112~11N)에 할당한다. 도 4를 참조하면, 제 1 내지 제 M 작업 쓰레드(181~18M)는 제 2 코어(172)에 할당된다. 마찬가지로, 도 4에 도시되지 않으나, 제 3 내지 제 N 코어(113~11N)에 각각 작업 쓰레드들이 할당될 것이다. 그리고 주 쓰레드에 대응하는 코어는 GPU 연산 유닛들에 대한 시뮬레이션 연산들을 각 작업 쓰레드에 할당한다.
도 5a 내지 도 5c는 주 쓰레드 및 작업 쓰레드들의 데이터 처리 과정을 보여주는 블록도이다. 도 5a를 참조하면, 처리될 데이터는 램(120)에 저장된다. 제 1 코어(111)는 처리될 데이터에 기반하여, 처리될 데이터의 주소 정보를 각 작업 쓰레드에 전송한다. 즉, 처리될 데이터는 제 2 코어(172)의 제 1 내지 제 M 작업 쓰레드(181~18M)에, 제 3 코어(113)의 작업 쓰레드들(미도시)에, 그리고 제 N 코어(11N)의 작업 쓰레드들(미도시)에 각각 할당된다. 즉, 주 쓰레드에 대응하는 제 1 코어(111)는 GPU 연산 유닛들에 대한 시뮬레이션 연산들을 각 작업 쓰레드에 할당한다.
예시적으로, 제 1 코어(111)는 처리될 데이터를 램(120,도 4 참조)으로부터 로드하고, 수신된 GPU 시뮬레이션 코드에 기반하여 GPU 연산 유닛들에 대한 시뮬레이션 연산들을 각 작업 쓰레드에 할당할 수 있다. 예시적으로, 제 1 코어(111)는 GPU 시뮬레이션 코드를 로드하고, 수신된 GPU 시뮬레이션 코드에 기반하여 GPU 연산 유닛들에 대한 시뮬레이션 연산들을 각 작업 쓰레드에 할당할 수 있다. 이 경우 작업 쓰레드들은 할당된 시뮬레이션 연산들을 수행하기 위해 램(120)으로부터 처리될 데이터를 수신할 것이다. 예를 들면, 주 쓰레드는 할당된 시뮬레이션 연산들에 대응하는 주소 정보를 작업 쓰레드에 전송할 수 있다. 각 작업 쓰레드는 수신된 주소 정보에 기반하여, 램(120)으로부터 처리될 데이터를 수신할 것이다.
도 5b를 참조하면, 각 작업 쓰레드에서 시뮬레이션 된 데이터는 램(120)에 전송된다. 제 1 작업 쓰레드(181)로부터 제 1 시뮬레이션 된 데이터(ⓐ)가 램(120)에 전송된다. 제 M 작업 쓰레드로부터 제 2 시뮬레이션된 데이터(ⓑ)가 램(120)에 전송된다. 제 3 코어(113)의 작업 쓰레드(미도시)로부터 제 3 시뮬레이션 된 데이터(ⓒ)가, 그리고 제 N 코어(11N)의 작업 쓰레드로부터 제 4 시뮬레이션 된 데이터(ⓓ)가 각각 램(120)에 전송된다. 마찬가지로, 도 5b에 도시되지 않은 작업 쓰레드들에서 시뮬레이션 된 데이터도 램(120)에 전송될 것이다. 작업 쓰레드들에 대응되는 코어들은 시뮬레이션 된 데이터를 램(120)에 전송한 후, 시뮬레이션 완료 신호를 주 쓰레드에 전송할 것이다. 모든 작업 쓰레드에 할당된 시뮬레이션이 완료되면 제 1 코어(111)는 램(120)으로부터 시뮬레이션 된 데이터를 로드할 수 있다.
도 5c를 참조하면, 제 1 코어(111)는 각 작업 쓰레드에서 시뮬레이션 된 데이터를 동기화(synchronization)한다. 제 1 코어(111)는 주 쓰레드에서 동기화 작업을 수행한다. 만약, 하나의 코어에서 시뮬레이션이 수행된다면 별도의 동기화가 수행되지 않을 것이다. 하나의 코어에서 시뮬레이션이 수행되는 경우, GPU 연산 유닛들에 대한 시뮬레이션이 수행되면서 생성된 데이터가 램(120)에 저장될 것이다. 그리고 저장된 데이터는 시뮬레이션이 수행되면서 업데이트 될 것이다.
반면, 복수의 작업 쓰레드들에서 GPU 연산 유닛들에 대한 시뮬레이션이 수행되는 경우, 각 작업 쓰레드에서 자신이 할당 받은 처리될 데이터에 대해 시뮬레이션이 수행되고, 생성된 데이터는 램(120)에 전송된다. 주 쓰레드에 대응하는 코어는 램(120)에 분산되어 저장된 GPU 연산 유닛들에 대한 시뮬레이션 데이터를 취합하여 하나의 시뮬레이션 결과 데이터로 동기화한다.
도 5c를 참조하면, 각 작업 쓰레드에서 시뮬레이션 된 데이터가 램(120)에 전송되는 경우, 주 쓰레드는 램(120)으로부터 제 1 내지 제 4 시뮬레이션 된 데이터(ⓐ~ⓓ)를 로드한다. 그리고 로드된 데이터에 대해 동기화를 수행할 것이다. 시뮬레이션 된 데이터에 대한 동기화는 모든 작업 쓰레드들에서 GPU 연산 유닛들에 대한 시뮬레이션이 종료된 후에 수행된다. 그리고, 도 5c에 도시되지 않으나, 동기화된 데이터는 램(120)에 전송될 것이다.
도 6은 본 발명의 실시 예에 따른 GPU 시뮬레이션을 수행하는 방법을 보여주는 순서도이다. 도 4 및 도 6을 참조하면, S110단계에서 주 쓰레드에 대응하는 코어에서 복수의 작업 쓰레드들을 생성한다. 주 쓰레드는 중앙 처리 장치(110)에 포함된 코어들 중 어느 하나에 대응된다. 그리고 복수의 작업 쓰레드들은 주 쓰레드에 대응되지 않는 코어들에 대응될 것이다. 예시적으로, 중앙 처리 장치(110)에 8개의 코어가 포함된 경우, 주 쓰레드와 대응되는 코어를 제외한 7개의 코어들 각각에 M개의 작업 쓰레드가 생성될 수 있다. 예시적으로, 주 쓰레드는 중앙 처리 장치(110)에 포함된 코어들 중 주 쓰레드에 대응되지 않는 코어들의 개수만큼 작업 쓰레드들을 생성할 수 있다. 예를 들면, 중앙 처리 장치(110)가 8개의 코어를 포함하는 경우, 7개의 작업 쓰레드를 생성할 수 있다.
주 쓰레드에 대응하는 코어는 GPU 연산 유닛들(도 2 참조)에 대한 시뮬레이션 연산들을 작업 쓰레드들에 할당한다(S120). 그리고 각 작업 쓰레드에서 GPU 연산 유닛들에 대한 시뮬레이션이 수행된다(S130).
S140단계에서, 주 쓰레드에 대응하는 코어는 작업 쓰레드들에 의해 시뮬레이션 된 데이터를 동기화한다. 예시적으로, 작업 쓰레드에서 시뮬레이션 된 데이터는 주 쓰레드에 전송되고, 주 쓰레드에 대응하는 코어는 시뮬레이션 된 데이터를 동기화할 수 있다. 예시적으로, 작업 쓰레드에서 시뮬레이션 된 데이터는 램(120,도 4 참조)에 전송될 수 있다. 그리고 램(120)에 저장된 데이터는 주 쓰레드에 전송되고, 램(120)에서 전송된 데이터에 대한 동기화가 수행될 것이다. 예를 들면, 각 작업 쓰레드에 대응하는 코어는 시뮬레이션 된 데이터를 램(120)에 전송하는 한편, 시뮬레이션 수행이 완료될 때 완료 신호를 주 쓰레드에 전송할 것이다. 모든 작업 쓰레드로부터 완료 신호가 수신된 경우, 주 쓰레드에 대응하는 코어는 램(120)에 호출 신호를 전송하고 램(120)으로부터 데이터를 수신할 수 있다.
도 7은 본 발명의 다른 실시 예에 따라 하나의 코어에 하나의 작업 쓰레드가 대응되는 경우를 보여주는 블록도이다. 도 7을 참조하면, 주 쓰레드는 제 1 코어(111)에 대응된다. 그리고 제 1 내지 제 N-1 작업 쓰레드는 제 2 내지 제 N 코어(112~11N)에 대응된다. 주 쓰레드는 제 1 내지 제 N-1 작업 쓰레드 각각에 GPU 연산 유닛들에 대한 시뮬레이션 연산들을 할당할 것이다. 제 1 내지 제 N-1 작업 쓰레드는 각각에 할당된 시뮬레이션 연산들을 수행할 것이다. 그리고 주 쓰레드는 제 1 내지 제 N-1 작업 쓰레드에서 시뮬레이션 된 데이터에 대해 동기화를 수행할 것이다.
본 발명의 실시 예에 따르면, 복수의 코어에 대응하는 작업 쓰레드들을 생성하고, 작업 쓰레드에서 병렬적으로 시뮬레이션이 수행된다. 중앙 처리 장치(110)에 포함된 코어의 개수가 증가함에 따라 시뮬레이션 속도가 향상될 것이다. 따라서, 본 발명의 실시 예에 따르면 향상된 속도를 가지는 GPU 시뮬레이터가 제공된다.
한편, 본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
100: 컴퓨팅 시스템
110: 중앙 처리 장치
120: 램
130: 사용자 인터페이스
140: 전원
150: 시스템 버스
160: 불휘발성 메모리 장치
170: GPU
111~11N: 제 1 내지 제 N 코어
181~18M: 제 1 내지 제 M 작업 쓰레드
210~2R0: 제 1 내지 R 연산 블록
213: SP 블록
214: SFU 블록

Claims (21)

  1. 복수의 코어(Multi Core)들을 포함하는 중앙 처리 장치(CPU)에 있어서,
    주 쓰레드에 대응되는 상위 코어; 및
    복수의 작업 쓰레드들에 대응되는 복수의 하위 코어들을 포함하되,
    상기 하위 코어들은, 상기 하위 코어들 각각에 대응되는 적어도 하나의 작업 쓰레드들에서 GPU(Graphics Processing Unit)의 연산 유닛들에 대한 시뮬레이션 연산들을 수행하여 시뮬레이션 데이터를 생성하고,
    상기 상위 코어는 상기 GPU의 연산 유닛들에 대한 시뮬레이션 연산들을 상기 복수의 작업 쓰레드들에 할당하고, 상기 시뮬레이션 데이터에 기반하여 동기화(synchronization) 데이터를 생성하는 중앙 처리 장치.
  2. 제 1 항에 있어서,
    상기 주 쓰레드는 상기 복수의 작업 쓰레드들의 상위 쓰레드인 중앙 처리 장치.
  3. 제 1 항에 있어서,
    상기 상위 코어는 상기 하위 코어들의 개수에 기반하여 상기 복수의 작업 쓰레드를 생성하는 중앙 처리 장치.
  4. 제 3 항에 있어서,
    상기 상위 코어는 상기 하위 코어들의 개수만큼 상기 복수의 작업 쓰레드를 생성하는 중앙 처리 장치.
  5. 제 1 항에 있어서,
    상기 상위 코어는 상기 주 쓰레드에서 동기화 데이터를 생성하는 중앙 처리 장치.
  6. 제 1 항에 있어서,
    상기 상위 코어는 상기 GPU의 연산 유닛들에 대한 시뮬레이션 연산들이 종료될 때, 상기 시뮬레이션 데이터에 기반하여 동기화 데이터를 생성하는 중앙 처리 장치.
  7. 복수의 코어(Multi Core)들을 포함하는 중앙 처리 장치(CPU); 및
    GPU(Graphics Processing Unit) 시뮬레이션 코드를 저장하는 램(Random Acess Memory,RAM)을 포함하되,
    상기 중앙 처리 장치는
    주 쓰레드에 대응되는 상위 코어; 및
    복수의 작업 쓰레드들에 대응되는 하위 코어들을 포함하되,
    상기 상위 코어는 상기 GPU의 연산 유닛들에 대한 시뮬레이션 연산들을 상기 복수의 작업 쓰레드들에 할당하고, 상기 복수의 작업 쓰레드들에서 생성된 시뮬레이션 데이터에 기반하여 동기화(synchronization) 데이터를 생성하고,
    상기 하위 코어들은, 상기 하위 코어들 각각에 대응되는 적어도 하나의 작업 쓰레드에서 할당된 상기 GPU의 연산 유닛들에 대한 시뮬레이션 연산들을 수행하여 시뮬레이션 데이터를 생성하는 컴퓨팅 시스템.
  8. 제 7 항에 있어서,
    상기 상위 코어는 상기 하위 코어들의 개수에 기반하여 상기 복수의 작업 쓰레드들을 생성하는 컴퓨팅 시스템.
  9. 제 7 항에 있어서,
    상기 상위 코어는 상기 GPU 시뮬레이션 코드를 로드하는 컴퓨팅 시스템.
  10. 제 7 항에 있어서,
    상기 상위 코어는 상기 GPU 시뮬레이션 코드에 기반하여 상기 GPU의 연산 유닛들에 대한 시뮬레이션 연산들을 상기 복수의 작업 쓰레드들에 할당하는 컴퓨팅 시스템.
  11. 제 7 항에 있어서,
    상기 램은 상기 복수의 작업 쓰레드들에서 생성된 상기 시뮬레이션 데이터를 저장하는 컴퓨팅 시스템.
  12. 제 11 항에 있어서,
    상기 램은 상기 복수의 작업 쓰레드들에서 상기 GPU의 연산 유닛들에 대한 시뮬레이션 연산들이 종료될 때, 상기 시뮬레이션 데이터를 상기 상위 코어에 제공하는 컴퓨팅 시스템.
  13. 제 7 항에 있어서,
    상기 상위 코어는 상기 GPU의 연산 유닛들에 대한 시뮬레이션 연산들이 종료될 때, 상기 주 쓰레드에서 상기 시뮬레이션 데이터에 기반하여 동기화 데이터를 생성하는 컴퓨팅 시스템.
  14. 복수의 코어(Multi Core)들을 포함하는 중앙 처리 장치의 GPU(Graphics Processing Unit) 시뮬레이션 방법에 있어서,
    주 쓰레드를 생성하고, 상기 주 쓰레드를 상기 코어들 중 어느 하나에 대응시키는 단계;
    복수의 작업 쓰레드들을 생성하고, 상기 작업 쓰레드들을 상기 주 쓰레드에 대응되는 코어를 제외한 코어들에 대응시키는 단계;
    상기 주 쓰레드의 제어에 따라 GPU(Graphics Processing Unit)의 연산 유닛들에 대한 시뮬레이션 연산들을 상기 작업 쓰레드들에 할당하는 단계;
    상기 작업 쓰레드들에서 상기 할당된 시뮬레이션 연산들을 수행하고, 시뮬레이션 데이터를 출력하는 단계; 및
    상기 주 쓰레드에서 상기 시뮬레이션 데이터에 기반하여 동기화(synchronization) 데이터를 생성하는 단계를 포함하는 GPU 시뮬레이션 방법.
  15. 제 14 항에 있어서,
    상기 주 쓰레드는 상기 작업 쓰레드들의 상위 쓰레드인 GPU 시뮬레이션 방법.
  16. 제 14 항에 있어서,
    상기 복수의 작업 쓰레드들을 생성하는 단계는
    상기 코어들의 개수에 기반하여 작업 쓰레드들을 생성하는 단계를 포함하는 GPU 시뮬레이션 방법.
  17. 제 14 항에 있어서,
    상기 복수의 작업 쓰레드들을 생성하는 단계는
    상기 코어들 중 상기 주 쓰레드에 대응하는 코어를 제외한 코어들의 개수만큼 상기 작업 쓰레드들을 생성하는 단계를 포함하는 GPU 시뮬레이션 방법.
  18. 제 14 항에 있어서,
    상기 작업 쓰레드들을 상기 코어들에 대응시키는 단계는 상기 주 쓰레드에 대응하는 코어의 제어에 따라 수행되는 GPU 시뮬레이션 방법.
  19. 제 14 항에 있어서,
    상기 작업 쓰레드들을 상기 코어들에 대응시키는 단계는
    상기 작업 쓰레드들을 상기 코어들 중 상기 주 쓰레드에 대응하는 코어를 제외한 코어들에 대응시키는 단계를 포함하는 GPU 시뮬레이션 방법.
  20. 제 14 항에 있어서,
    상기 동기화 데이터를 생성하는 단계는 상기 출력된 시뮬레이션 데이터를 저장하는 단계; 및 상기 저장된 시뮬레이션 데이터에 기반하여 상기 동기화 데이터를 생성하는 단계를 포함하는 GPU 시뮬레이션 방법.
  21. 제 20 항에 있어서,
    상기 동기화 데이터를 생성하는 단계는 상기 할당된 시뮬레이션 연산들이 종료될 때, 상기 저장된 시뮬레이션 데이터에 기반하여 상기 동기화 데이터를 생성하는 단계를 포함하는 GPU 시뮬레이션 방법.
KR1020100071036A 2010-07-22 2010-07-22 중앙 처리 장치, 그것의 gpu 시뮬레이션 방법 그리고 그것을 포함하는 컴퓨팅 시스템 KR101136850B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020100071036A KR101136850B1 (ko) 2010-07-22 2010-07-22 중앙 처리 장치, 그것의 gpu 시뮬레이션 방법 그리고 그것을 포함하는 컴퓨팅 시스템
US13/811,436 US9378533B2 (en) 2010-07-22 2010-12-28 Central processing unit, GPU simulation method thereof, and computing system including the same
PCT/KR2010/009416 WO2012011644A1 (ko) 2010-07-22 2010-12-28 중앙 처리 장치, 그것의 gpu 시뮬레이션 방법 그리고 그것을 포함하는 컴퓨팅 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100071036A KR101136850B1 (ko) 2010-07-22 2010-07-22 중앙 처리 장치, 그것의 gpu 시뮬레이션 방법 그리고 그것을 포함하는 컴퓨팅 시스템

Publications (2)

Publication Number Publication Date
KR20120009919A KR20120009919A (ko) 2012-02-02
KR101136850B1 true KR101136850B1 (ko) 2012-04-20

Family

ID=45497038

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100071036A KR101136850B1 (ko) 2010-07-22 2010-07-22 중앙 처리 장치, 그것의 gpu 시뮬레이션 방법 그리고 그것을 포함하는 컴퓨팅 시스템

Country Status (3)

Country Link
US (1) US9378533B2 (ko)
KR (1) KR101136850B1 (ko)
WO (1) WO2012011644A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013204890A1 (de) * 2013-03-20 2014-09-25 Siemens Aktiengesellschaft Verfahren zur Magnetresonanztomographie-Bildrekonstruktion
KR102293445B1 (ko) 2013-08-26 2021-08-26 에스케이플래닛 주식회사 홈 어플리케이션 서비스를 위한 장치
KR101603711B1 (ko) * 2014-04-25 2016-03-15 전자부품연구원 그래픽 처리 장치의 동작을 위한 작업 할당 시스템 및 방법
JP6394341B2 (ja) * 2014-07-23 2018-09-26 富士通株式会社 計算装置、計算方法、および計算プログラム
US10542233B2 (en) * 2014-10-22 2020-01-21 Genetec Inc. System to dispatch video decoding to dedicated hardware resources
CN107817969B (zh) * 2016-08-31 2020-10-16 华为技术有限公司 一种程序生成方法、装置及计算机系统
KR101887288B1 (ko) 2016-12-26 2018-08-09 연세대학교 산학협력단 그래픽 처리 장치에서의 범용 연산처리의 스크래치패드 메모리 최적 컴파일 방법 및 장치
CN107066378B (zh) * 2017-01-24 2020-12-04 成都皓图智能科技有限责任公司 一种实时在线gpu通用计算模拟及调试方法
KR102111766B1 (ko) 2018-08-29 2020-05-15 한국과학기술원 적응 제어 알고리즘을 위한 중앙처리장치-병렬처리장치 구조 기반의 데이터 처리 장치 및 그 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060242618A1 (en) * 2005-02-14 2006-10-26 Yao-Ting Wang Lithographic simulations using graphical processing units
US20100274549A1 (en) * 2008-03-27 2010-10-28 Rocketick Technologies Ltd. Design simulation using parallel processors

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7016998B2 (en) * 2000-11-27 2006-03-21 Silicon Graphics, Inc. System and method for generating sequences and global interrupts in a cluster of nodes
US8274518B2 (en) 2004-12-30 2012-09-25 Microsoft Corporation Systems and methods for virtualizing graphics subsystems
US7924278B2 (en) * 2006-07-28 2011-04-12 Microsoft Corporation Real-time GPU rendering of piecewise algebraic surfaces
EP2060985A1 (en) 2007-11-12 2009-05-20 2M Soft. di Marco Marcinno' Functional testing method and device for an electronic product
KR101013073B1 (ko) 2007-12-17 2011-02-14 한국전자통신연구원 태스크 분배 및 병렬 처리 시스템과 그 방법
US8279227B2 (en) * 2008-04-04 2012-10-02 Sony Corporation Method for detecting collisions among large numbers of particles
KR100949746B1 (ko) 2008-07-10 2010-03-25 삼성중공업 주식회사 멀티코어 프로세싱 환경에서의 객체 검색 방법 및 장치
TWI378356B (en) * 2009-04-21 2012-12-01 Nat Univ Tsing Hua Method and device for multi-core instruction-set simulation
US8537169B1 (en) * 2010-03-01 2013-09-17 Nvidia Corporation GPU virtual memory model for OpenGL
US8385666B2 (en) * 2010-03-31 2013-02-26 Microsoft Corporation Classification and encoder selection based on content

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060242618A1 (en) * 2005-02-14 2006-10-26 Yao-Ting Wang Lithographic simulations using graphical processing units
US20100274549A1 (en) * 2008-03-27 2010-10-28 Rocketick Technologies Ltd. Design simulation using parallel processors

Also Published As

Publication number Publication date
US9378533B2 (en) 2016-06-28
US20130207983A1 (en) 2013-08-15
KR20120009919A (ko) 2012-02-02
WO2012011644A1 (ko) 2012-01-26

Similar Documents

Publication Publication Date Title
KR101136850B1 (ko) 중앙 처리 장치, 그것의 gpu 시뮬레이션 방법 그리고 그것을 포함하는 컴퓨팅 시스템
CN106056529B (zh) 一种对用于图片识别的卷积神经网络训练的方法与设备
CN103365631B (zh) 用于存储器访问的动态库模式寻址
US9355428B2 (en) Method and apparatus for data processing using graphic processing unit
CN104714785A (zh) 任务调度装置、方法及并行处理数据的设备
US11640443B2 (en) Distributing matrix multiplication processing among processing nodes
CN103425534A (zh) 在许多应用之间共享的图形处理单元
CN110675480A (zh) 用于获取纹理操作的采样位置的方法和装置
US20140257769A1 (en) Parallel algorithm for molecular dynamics simulation
Zhou et al. Multi-GPU implementation of a 3D finite difference time domain earthquake code on heterogeneous supercomputers
Langguth et al. Scalable heterogeneous CPU-GPU computations for unstructured tetrahedral meshes
CN116245997A (zh) 基于超级计算机的三维模型动态渲染并行加速方法、系统
Grosset et al. TOD-tree: Task-overlapped direct send tree image compositing for hybrid MPI parallelism and GPUs
Zhang et al. F-CAD: A framework to explore hardware accelerators for codec avatar decoding
Na’im Fikri Jamaluddin et al. Performance comparison of java based parallel programming models
Dharma et al. Material point method based fluid simulation on GPU using compute shader
Valero-Lara et al. LBM-HPC-an open-source tool for fluid simulations. case study: Unified parallel C (UPC-PGAS)
Soukov et al. Portable solution for modeling compressible flows on all existing hybrid supercomputers
Siba et al. Parallel implementation and performance analysis of a 3D oil reservoir data visualization tool on the cell broadband engine and CUDA GPU
Wang et al. Multi-gpu compositeless parallel rendering algorithm
Peng et al. Load balanced parallel GPU out-of-core for continuous LOD model visualization
Dudnik et al. Cuda architecture analysis as the driving force Of parallel calculation organization
Yuan et al. Real-time simulation of tissue cutting with CUDA based on GPGPU
US20230289398A1 (en) Efficient Matrix Multiply and Add with a Group of Warps
US20230315655A1 (en) Fast data synchronization in processors and memory

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160425

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170403

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180406

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190408

Year of fee payment: 8