KR101284195B1 - 개방형 범용 병렬 컴퓨팅 프레임워크 동적 작업 분배 장치 - Google Patents
개방형 범용 병렬 컴퓨팅 프레임워크 동적 작업 분배 장치 Download PDFInfo
- Publication number
- KR101284195B1 KR101284195B1 KR1020120002408A KR20120002408A KR101284195B1 KR 101284195 B1 KR101284195 B1 KR 101284195B1 KR 1020120002408 A KR1020120002408 A KR 1020120002408A KR 20120002408 A KR20120002408 A KR 20120002408A KR 101284195 B1 KR101284195 B1 KR 101284195B1
- Authority
- KR
- South Korea
- Prior art keywords
- work
- kernel
- parallel computing
- core
- job
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 51
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
본 발명은 개방형 범용 병렬 컴퓨팅 프레임워크 동적 작업 분배 장치에 관한 것으로, 개방형 범용 병렬 컴퓨팅 프레임워크(OpenCL)를 이용해 커널이 시작되는 시점에서 각 코어에게 작업량을 분할하여 한번에 배분하고, 커널 종료시에 결과값을 취합하는 과정에서 캐시 일관성을 고려하기 때문에 복수의 코어의 캐시 일관성을 보장하는 동시에 효율적으로 작업을 분배할 수 있도록 한 것이다.
Description
본 발명은 동적 작업 분배 기술에 관련한 것으로, 특히 개방형 범용 병렬 컴퓨팅 프레임워크 동적 작업 분배 장치에 관한 것이다.
국내특허공개 제2011-0075296호(2011.07.06)에서 다수의 코어가 사용되는 멀티코어 시스템상에서 2개 이상의 스테이지로 구분하여 수행 가능한 어플리케이션을 시간차를 두고 병렬로 파이프라인 처리하기 위하여 각 스테이지들 사이의 연관 관계 및 각 스테이지에 대한 코어별 성능에 대한 정보를 주기적으로 수집한 다음, 이 정보에 기초하여 코어에 추가 작업을 할당하는 기술을 제안하고 있다.
캐시 일관성이란 여러 코어가 하나의 메모리주소에 값을 읽거나 쓰려고 하는 경우 캐시의 효과로 인해 발생하는 현상을 지칭한다. 예를 들어, 하나의 코어가 특정 메모리주소에 값을 적은 경우, 이 값은 그 코어의 캐시에만 일시적으로 저장될 수 있다.
이 시점에서 다른 코어가 동일한 메모리주소의 값을 읽어 들이는 경우, 이전 코어가 적은 값이 아직 메모리에 적히지 않았기 때문에 그 이전의 값을 읽게 되고, 이는 그 메모리주소에 대한 값의 일관성이 깨지게 된다. 그렇기 때문에 나중의 코어가 이전 코어가 적은 값을 반드시 볼 수 있게 해주는 방법이 필요하고 현재의 대다수의 멀티코어들은 하드웨어 기법을 통해 일관성을 유지하는 방식을 택하고 있다.
하드웨어 캐시 일관성은 현재의 멀티코어 프로세서를 활용하는데 핵심이 되는 요소이다. 하지만 이 기술은 앞으로 더 많은 코어가 집적될수록 성능의 병목이 될 가능성이 높다. 그렇기 때문에 하드웨어 캐시 일관성을 보장하지 않는 매니코어 프로세서들이 연구되고 있다.
하지만, 이러한 매니코어 프로세서는 캐시 일관성을 프로그래머가 직접 고려해야 한다는 어려움을 가지게 되므로 이를 해결할 방법이 필요한데, 개방형 범용 병렬 컴퓨팅 프레임워크(OpenCL) 프로그래밍 모델이 하나의 방안이 될 수 있다.
개방형 범용 병렬 컴퓨팅 프레임워크(OpenCL)는 여러 종류의 이종 플랫폼에 대해 단일한 하드웨어 추상화를 제공하기 때문에 프로그래머의 입장에서는 좀더 소프트웨어적인 측면에만 집중할 수 있다는 장점이 있다.
하지만, 멀티코어를 활용하기 위한 지금까지의 개방형 범용 병렬 컴퓨팅 프레임워크(OpenCL) 실행 시스템은 하드웨어 캐시 일관성이 보장되는 것을 가정하고 구현되어 있기 때문에 이러한 프로세서에 그대로 적용하는 것이 불가능하다.
따라서, 본 발명자는 개방형 범용 병렬 컴퓨팅 장치의 호스트 코어에서 수행되는 개방형 범용 병렬 컴퓨팅 프레임워크(OpenCL)를 이용해 복수의 코어의 캐시 일관성을 보장하는 동시에 효율적으로 작업을 분배할 수 있는 기술에 대한 연구를 하게 되었다.
본 발명은 상기한 취지하에 발명된 것으로, 복수의 코어의 캐시 일관성을 보장하는 동시에 효율적으로 작업을 분배할 수 있는 개방형 범용 병렬 컴퓨팅 프레임워크(OpenCL) 동적 작업 분배 장치를 제공함을 그 목적으로 한다.
본 발명의 일 양상에 따르면, 개방형 범용 병렬 컴퓨팅 장치의 호스트 코어(host core)에서 수행되는 개방형 범용 병렬 컴퓨팅 프레임워크(OpenCL) 동적 작업 분배 장치가 커널(kernel) 수행이 필요한 시점에 커널을 분할하여 적어도 하나의 서브 코어에 분배하고, 커널 수행 종료시 각 서브 코어들에 의해 수행된 작업 결과를 취합하여 캐시 일관성이 유지된 작업 결과를 획득하도록 한 것을 특징으로 한다.
본 발명은 개방형 범용 병렬 컴퓨팅 프레임워크(OpenCL)를 이용해 커널이 시작되는 시점에서 각 코어에게 작업량을 분할하여 한번에 배분하고, 커널 종료시에 결과값을 취합하는 과정에서 캐시 일관성을 고려하기 때문에 복수의 코어의 캐시 일관성을 보장하는 동시에 효율적으로 작업을 분배할 수 있는 유용한 효과가 있다.
도 1 은 본 발명에 따른 개방형 범용 병렬 컴퓨팅 프레임워크 동적 작업 분배 장치의 일 실시예의 구성을 도시한 블럭도이다.
도 2 는 본 발명에 따른 개방형 범용 병렬 컴퓨팅 프레임워크 동적 작업 분배 장치의 동적 작업 분배 과정을 도식화한 도면이다.
도 2 는 본 발명에 따른 개방형 범용 병렬 컴퓨팅 프레임워크 동적 작업 분배 장치의 동적 작업 분배 과정을 도식화한 도면이다.
이하, 첨부된 도면을 참조하여 기술되는 바람직한 실시예를 통하여 본 발명을 당업자가 용이하게 이해하고 재현할 수 있도록 상세히 기술하기로 한다.
본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명 실시예들의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
본 발명 명세서 전반에 걸쳐 사용되는 용어들은 본 발명 실시예에서의 기능을 고려하여 정의된 용어들로서, 사용자 또는 운용자의 의도, 관례 등에 따라 충분히 변형될 수 있는 사항이므로, 이 용어들의 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1 은 본 발명에 따른 개방형 범용 병렬 컴퓨팅 프레임워크 동적 작업 분배 장치의 일 실시예의 구성을 도시한 블럭도이다. 도 1 에 도시한 바와 같이, 이 실시예에 따른 개방형 범용 병렬 컴퓨팅 프레임워크 동적 작업 분배 장치(100)는 개방형 범용 병렬 컴퓨팅 장치의 호스트 코어(host core)에서 수행되며, 커널 수행 시점 판단부(110)와, 작업 분배 방식 결정부(120)와, 작업 분배부(130)와, 작업 취합부(140)를 포함하여 이루어진다.
커널 수행 시점 판단부(110)는 적어도 하나의 작업 항목(work-item)을 포함하는 작업 그룹(work group)들의 집합으로 이루어지는 커널(kernel)의 수행 시점을 판단한다.
개방형 범용 병렬 컴퓨팅 프레임워크(OpenCL) 어플리케이션은 커널(kernel) 프로그램과, 호스트(host) 프로그램으로 구성된다. 커널 프로그램은 CPU나 GPU같은 계산 장치에서 실행되는 함수이다. 호스트 프로그램은 커널 프로그램이 실행되도록 메모리나 커널 프로그램 등을 관리하는 호스트 코어에서 동작하는 프로그램이다.
호스트 코어는 호스트 프로그램을 수행하면서 커널 수행 시점 판단부(110)를 통해 커널(kernel)의 수행 시점을 판단한다. 예컨대, 커널(kernel)의 수행 시점을 판단은 커널 수행 요청 이벤트(event)를 검출함에 의해 판단할 수 있다.
커널(kernel)은 일정량의 작업 항목(work-item)을 포함하는 작업 그룹(work group)들의 집합으로 구성될 수 있으며, 예컨대 작업 항목(work-item)들이 3차원의 인덱스 공간(index space)에 배열되도록 구현될 수 있다.
작업 분배 방식 결정부(120)는 커널 수행 시점 판단부(110)에 의해 커널 수행 시점이라 판단된 경우, 커널의 작업 그룹에 포함되는 작업 항목들에 대한 작업 분배 방식을 결정한다.
이 때, 하나의 커널에 대해 여러 방법의 작업 분배 방식이 존재할 수 있다. 예컨대, 3차원 인덱스 공간(index space)에 작업 항목(work-item)들이 배열된 커널의 경우, 1차원에서는 작업 그룹(work group)을 동일한 양으로 나누는 하나의 방법밖에 존재하지 않지만, 2차원에서는 작업 그룹(work group)을 가로로 자르거나, 세로로 자르거나, 가로 및 세로 혼합으로 자르거나 하는 등의 다양한 작업 분배 방식이 존재한다.
이 경우, 각 작업 분배 방식에 따라 예상되는 작업 성능의 차이가 생기게 되는데, 이를 기반으로 작업 분배 방식 결정부(120)가 가장 효율적인 작업 분배 방식을 결정할 수 있다.
예컨대, 작업 분배 방식 결정부(120)가 기호 배열 범위 분석(Symbolic array bound analysis) 기법을 이용해, 컴파일러에 의해 제공되는 커널 프로그램 코드를 분석해, 각 작업 그룹이 접근하는 메모리 영역 크기 또는 범위 또는 메모리 접근 형태를 검출하고, 이를 기반으로 각 작업 항목들에 대한 작업 분배 방식을 결정하도록 구현할 수 있다.
이 때, 작업 분배 방식 결정부(120)가 커널 프로그램 코드에서 개방형 범용 병렬 컴퓨팅 프레임워크(OpenCL)의 버퍼 객체(buffer object)에 대한 접근이 있는 라인들을 분석해, 각 작업 그룹에 포함되는 작업 항목들이 접근하는 물리 메모리의 시작 주소와 마지막 주소, 메모리 읽기 또는 쓰기 접근인지를 검출하여, 각 작업 항목들에 대한 작업 분배 방식을 결정할 수 있다.
예컨대, 3차원 인덱스 공간(index space)에 작업 항목(work-item)들이 배열된 커널의 2차원에서 작업 그룹(work group)을 가로로 자르는 방식과, 세로로 자르는 방식 두 가지 방식을 채용했다 가정하면, 작업 분배 방식 결정부(120)가 각각의 방식을 택했을 때 각 서브 코어들이 접근하는 버퍼 객체(buffer object)의 영역을 구하고, 이 버퍼 객체(buffer object)의 영역들을 토대로 각 서브 코어간에 겹치는 영역의 존재 여부 및 범위를 구한다.
서로 겹치는 영역이 존재하며, 만약 이 영역에 하나의 코어라도 값을 쓰는 것이 발견되면, 이 영역은 캐시 일관성을 고려하여 결과값을 합쳐야 하기 때문에 상당한 부가 계산과 메모리 복사 연산이 필요하게 된다. 이러한 연산은 겹치는 영역의 크기에 비례하기 때문에 작업 분배 방식 결정부(120)가 가로로 자르는 방식과 세로로 자르는 방식 중 더 적은 영역이 겹치는 방식을 택하도록 구현될 수 있다.
작업 분배부(130)는 작업 분배 방식 결정부(120)에 의해 결정된 작업 분배 방식에 따라, 복수의 서브 코어로 작업을 분배한다. 작업 분배 방식 결정부(120)에 의해 작업 분배 방식이 결정되면, 작업 분배부(130)가 결정된 작업 분배 방식에 따라, 복수의 서브 코어로 실제로 작업을 분배한다.
이 때, 작업 분배부(130)가 작업 항목들이 접근하는 호스트 코어의 메모리 영역이 겹치는 작업 항목의 경우, 해당 겹치는 호스트 코어의 메모리 영역과 매핑되지 않는 각 코어의 독립적인 메모리 영역을 정적 할당하고, 정적 할당된 각 코어의 독립적인 메모리 영역으로 해당 겹치는 호스트 코어의 메모리 영역을 복사하도록 구현될 수 있다.
한편, 작업 분배부(130)가 작업 항목들이 접근하는 호스트 코어의 메모리 영역이 겹치지 않는 작업 항목의 경우, 호스트 코어의 메모리 영역과 매핑되는 각 코어의 독립적인 메모리 영역을 동적 할당하고, 동적 할당된 각 코어의 독립적인 메모리 영역에 기록되는 작업 결과가 호스트 코어의 메모리 영역에 동적 적용되도록 구현될 수 있다.
이에 따라, 작업 분배부(130)는 캐시 일관성을 고려할 필요가 없는 영역(작업 항목들이 접근하는 호스트 코어의 메모리 영역이 겹치지 않는 영역)에 대해서는 메모리 복사가 필요 없어지고 동시에 값의 일관성에 대한 고민을 할 필요가 없어 더욱 효율적인 결과를 기대할 수 있게 된다.
이 때, 작업 분배부(130)가 작업 분배시 각 서브 코어가 실제로 사용하는 크기만큼만을 원본 버퍼 객체(buffer object)에서 잘라내어 각 서브 코어로 전달하므로, 각 서브 코어가 사용하는 커널 프로그램을 수정할 필요가 있다. 작업 분배부(130)는 잘라진 시작점의 오프셋(offset)을 실행 시점에 각 서브 코어로 전달하여 그 오프셋을 실제 메모리 접근 인덱스에서 빼주도록 컴파일러를 통해 수정하여야 한다.
작업 취합부(140)는 커널 수행 종료시, 작업 분배부(130)에 의해 분배된 작업을 수행한 각 서브 코어들에 의해 수행된 작업 결과를 취합하여 캐시 일관성이 유지된 작업 결과를 획득한다.
이 때, 작업 취합부(140)가 정적 할당된 각 코어의 독립적인 메모리 영역으로부터 작업 결과를 수집하고, 수집된 작업 결과와 호스트 코어의 메모리 영역에 동적 적용되는 작업 결과를 취합하여 캐시 일관성이 유지된 작업 결과를 획득하도록 구현될 수 있다.
그 후, 작업 취합부(140)가 취합된 작업 결과를 개방형 범용 병렬 컴퓨팅 프레임워크(OpenCL)의 버퍼 객체(buffer object)에 기록하여 갱신한다. 이 때, 작업 취합부(140)가 원본 버퍼 객체(buffer object)에 기록된 값과 비교하여 새로이 추가된 값들만을 찾아내 갱신하게 되고, 이에 따라 값의 일관성을 보존하게 된다.
이렇게 함에 의해, 본 발명은 개방형 범용 병렬 컴퓨팅 프레임워크(OpenCL)를 이용해 커널이 시작되는 시점에서 각 코어에게 작업량을 분할하여 한번에 배분하고, 커널 종료시에 결과값을 취합하는 과정에서 캐시 일관성을 고려하기 때문에 복수의 코어의 캐시 일관성을 보장하는 동시에 효율적으로 작업을 분배할 수 있게 된다.
이상에서 설명한 바와 같은 본 발명에 따른 개방형 범용 병렬 컴퓨팅 프레임워크 동적 작업 분배 장치의 동적 작업 분배 과정을 도 2 를 참조해 간략하게 알아본다. 도 2 는 본 발명에 따른 개방형 범용 병렬 컴퓨팅 프레임워크 동적 작업 분배 장치의 동적 작업 분배 과정을 도식화한 도면이다.
개방형 범용 병렬 컴퓨팅 장치의 호스트 코어에서 수행되는 개방형 범용 병렬 컴퓨팅 프레임워크(OpenCL) 동적 작업 분배 장치가 호스트 프로그램을 수행(210)하는 도중, 커널(kernel)의 수행 시점이라 판단(220)되면, 커널의 작업 그룹에 포함되는 작업 항목들에 대한 작업 분배 방식을 결정(230)한다. 커널(kernel)의 수행 시점 판단 및 작업 분배 방식 결정과 관련해서는 기 설명하였으므로, 중복 설명은 생략한다.
작업 분배 방식이 결정되면, 개방형 범용 병렬 컴퓨팅 프레임워크(OpenCL) 동적 작업 분배 장치가 결정된 작업 분배 방식에 따라, 복수의 서브 코어로 작업을 분배(240)하여 각 서브 코어에 의해 분배된 커널 작업이 수행(250)되고, 커널 수행 종료시, 각 서브 코어들에 의해 수행된 작업 결과를 취합(260)하여 캐시 일관성이 유지된 작업 결과를 획득한다.
이렇게 함에 의해, 본 발명은 개방형 범용 병렬 컴퓨팅 프레임워크(OpenCL)를 이용해 커널이 시작되는 시점에서 각 코어에게 작업량을 분할하여 한번에 배분하고, 커널 종료시에 결과값을 취합하는 과정에서 캐시 일관성을 고려하기 때문에 복수의 코어의 캐시 일관성을 보장하는 동시에 효율적으로 작업을 분배할 수 있으므로, 상기에서 제시한 본 발명의 목적을 달성할 수 있다.
본 발명은 첨부된 도면에 의해 참조되는 바람직한 실시예를 중심으로 기술되었지만, 이러한 기재로부터 후술하는 특허청구범위에 의해 포괄되는 범위내에서 본 발명의 범주를 벗어남이 없이 다양한 변형이 가능하다는 것은 명백하다.
본 발명은 동적 작업 분배 기술분야 및 이의 응용 기술분야에서 산업상으로 이용 가능하다.
100 : 동적 작업 분배 장치 110 : 커널 수행 시점 판단부
120 : 작업 분배 방식 결정부 130 : 작업 분배부
140 : 작업 취합부
120 : 작업 분배 방식 결정부 130 : 작업 분배부
140 : 작업 취합부
Claims (7)
- 개방형 범용 병렬 컴퓨팅 장치의 호스트 코어에서 수행되는 개방형 범용 병렬 컴퓨팅 프레임워크(OpenCL) 동적 작업 분배 장치에 있어서,
적어도 하나의 작업 항목(work-item)을 포함하는 작업 그룹(work group)들의 집합으로 이루어지는 커널(kernel)의 수행 시점을 판단하는 커널 수행 시점 판단부와;
커널 수행 시점 판단부에 의해 커널 수행 시점이라 판단된 경우, 커널의 작업 그룹에 포함되는 작업 항목들에 대한 작업 분배 방식을 결정하는 작업 분배 방식 결정부와;
작업 분배 방식 결정부에 의해 결정된 작업 분배 방식에 따라, 복수의 서브 코어로 작업을 분배하는 작업 분배부와;
커널 수행 종료시, 작업 분배부에 의해 분배된 작업을 수행한 각 서브 코어들에 의해 수행된 작업 결과를 취합하여 캐시 일관성이 유지된 작업 결과를 획득하는 작업 취합부를;
포함하여 이루어지는 것을 특징으로 하는 개방형 범용 병렬 컴퓨팅 프레임워크 동적 작업 분배 장치. - 제1 항에 있어서,
작업 분배 방식 결정부가:
컴파일러에 의해 제공되는 커널 프로그램 코드를 분석해, 각 작업 그룹이 접근하는 메모리 영역 크기 또는 범위 또는 메모리 접근 형태를 검출하고, 이를 기반으로 각 작업 항목들에 대한 작업 분배 방식을 결정하는 것을 특징으로 하는 개방형 범용 병렬 컴퓨팅 프레임워크 동적 작업 분배 장치. - 제 2 항에 있어서,
작업 분배 방식 결정부가:
커널 프로그램 코드에서 개방형 범용 병렬 컴퓨팅 프레임워크(OpenCL)의 버퍼 객체(buffer object)에 대한 접근이 있는 라인들을 분석해, 각 작업 그룹에 포함되는 작업 항목들이 접근하는 물리 메모리의 시작 주소와 마지막 주소, 메모리 읽기 또는 쓰기 접근인지를 검출하여, 각 작업 항목들에 대한 작업 분배 방식을 결정하는 것을 특징으로 하는 개방형 범용 병렬 컴퓨팅 프레임워크 동적 작업 분배 장치. - 제 3 항에 있어서,
작업 분배부가:
작업 항목들이 접근하는 호스트 코어의 메모리 영역이 겹치는 작업 항목의 경우, 해당 겹치는 호스트 코어의 메모리 영역과 매핑되지 않는 각 코어의 독립적인 메모리 영역을 정적 할당하고, 정적 할당된 각 코어의 독립적인 메모리 영역으로 해당 겹치는 호스트 코어의 메모리 영역을 복사하는 것을 특징으로 하는 개방형 범용 병렬 컴퓨팅 프레임워크 동적 작업 분배 장치. - 제 4 항에 있어서,
작업 분배부가:
작업 항목들이 접근하는 호스트 코어의 메모리 영역이 겹치지 않는 작업 항목의 경우, 호스트 코어의 메모리 영역과 매핑되는 각 코어의 독립적인 메모리 영역을 동적 할당하고, 동적 할당된 각 코어의 독립적인 메모리 영역에 기록되는 작업 결과가 호스트 코어의 메모리 영역에 동적 적용되도록 하는 것을 특징으로 하는 개방형 범용 병렬 컴퓨팅 프레임워크 동적 작업 분배 장치. - 제 5 항에 있어서,
작업 취합부가:
정적 할당된 각 코어의 독립적인 메모리 영역으로부터 작업 결과를 수집하고, 수집된 작업 결과와 호스트 코어의 메모리 영역에 동적 적용되는 작업 결과를 취합하여 캐시 일관성이 유지된 작업 결과를 획득하는 것을 특징으로 하는 개방형 범용 병렬 컴퓨팅 프레임워크 동적 작업 분배 장치. - 제 6 항에 있어서,
작업 취합부가:
취합된 작업 결과를 개방형 범용 병렬 컴퓨팅 프레임워크(OpenCL)의 버퍼 객체(buffer object)에 기록하여 갱신하는 것을 특징으로 하는 개방형 범용 병렬 컴퓨팅 프레임워크 동적 작업 분배 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120002408A KR101284195B1 (ko) | 2012-01-09 | 2012-01-09 | 개방형 범용 병렬 컴퓨팅 프레임워크 동적 작업 분배 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120002408A KR101284195B1 (ko) | 2012-01-09 | 2012-01-09 | 개방형 범용 병렬 컴퓨팅 프레임워크 동적 작업 분배 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101284195B1 true KR101284195B1 (ko) | 2013-07-10 |
Family
ID=48996956
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120002408A KR101284195B1 (ko) | 2012-01-09 | 2012-01-09 | 개방형 범용 병렬 컴퓨팅 프레임워크 동적 작업 분배 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101284195B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180076051A (ko) * | 2016-12-27 | 2018-07-05 | 삼성전자주식회사 | OpenCL 커널을 처리하는 방법과 이를 수행하는 컴퓨팅 장치 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090061177A (ko) * | 2007-12-11 | 2009-06-16 | 한국전자통신연구원 | 동적 로드 밸런싱을 지원하는 멀티 쓰레딩 프레임워크 및이를 이용한 프로세싱 방법 |
JP2011003072A (ja) | 2009-06-19 | 2011-01-06 | Toshiba Corp | マルチコアプロセッサシステム |
US20110022817A1 (en) | 2009-07-27 | 2011-01-27 | Advanced Micro Devices, Inc. | Mapping Processing Logic Having Data-Parallel Threads Across Processors |
KR20110075296A (ko) * | 2009-12-28 | 2011-07-06 | 삼성전자주식회사 | 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치 |
-
2012
- 2012-01-09 KR KR1020120002408A patent/KR101284195B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090061177A (ko) * | 2007-12-11 | 2009-06-16 | 한국전자통신연구원 | 동적 로드 밸런싱을 지원하는 멀티 쓰레딩 프레임워크 및이를 이용한 프로세싱 방법 |
JP2011003072A (ja) | 2009-06-19 | 2011-01-06 | Toshiba Corp | マルチコアプロセッサシステム |
US20110022817A1 (en) | 2009-07-27 | 2011-01-27 | Advanced Micro Devices, Inc. | Mapping Processing Logic Having Data-Parallel Threads Across Processors |
KR20110075296A (ko) * | 2009-12-28 | 2011-07-06 | 삼성전자주식회사 | 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180076051A (ko) * | 2016-12-27 | 2018-07-05 | 삼성전자주식회사 | OpenCL 커널을 처리하는 방법과 이를 수행하는 컴퓨팅 장치 |
US10503557B2 (en) | 2016-12-27 | 2019-12-10 | Samsung Electronics Co., Ltd. | Method of processing OpenCL kernel and computing device therefor |
KR102592330B1 (ko) | 2016-12-27 | 2023-10-20 | 삼성전자주식회사 | OpenCL 커널을 처리하는 방법과 이를 수행하는 컴퓨팅 장치 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10691363B2 (en) | Virtual machine trigger | |
US8453132B2 (en) | System and method for recompiling code based on locality domain and thread affinity in NUMA computer systems | |
DE102013017509B4 (de) | Effiziente Speichervirtualisierung in mehrsträngigen Verarbeitungseinheiten | |
CN105868028B (zh) | 一种进程间共享数据的方法、装置及终端 | |
DE102013017511B4 (de) | Effiziente speichervirtualisierung in mehrsträngigen verarbeitungseinheiten | |
US8826278B2 (en) | Controlling memory conditions in a virtual machine | |
CN105843683B (zh) | 用于动态优化平台资源分配的方法、系统和设备 | |
Kim et al. | Real-time cache management for multi-core virtualization | |
US20150113202A1 (en) | Cooperative memory resource management via application-level balloon | |
US20110072234A1 (en) | Providing Hardware Support For Shared Virtual Memory Between Local And Remote Physical Memory | |
US10452686B2 (en) | System and method for memory synchronization of a multi-core system | |
US9058197B2 (en) | Method for sharing memory of virtual machine and computer system using the same | |
CN103049328A (zh) | 计算机系统中内存资源分配方法 | |
Alvarez et al. | Runtime-guided management of stacked DRAM memories in task parallel programs | |
Perarnau et al. | Exploring data migration for future deep-memory many-core systems | |
CN109992451A (zh) | 非易失性内存和易失性内存混合管理方法及其系统 | |
Li et al. | A novel disk I/O scheduling framework of virtualized storage system | |
US8914778B2 (en) | Data placement for execution of an executable | |
KR101284195B1 (ko) | 개방형 범용 병렬 컴퓨팅 프레임워크 동적 작업 분배 장치 | |
EP3291103A1 (en) | System and method for creating a snapshot of a subset of a database | |
KR20100069302A (ko) | 메모리 관리 장치 및 방법 | |
TWI452468B (zh) | 虛擬機器記憶體的分享方法與電腦系統 | |
KR20120086999A (ko) | 멀티 코어 시스템 및 멀티 코어 시스템에서의 데이터 병렬 처리 방법 | |
CN106547603B (zh) | 减少golang语言系统垃圾回收时间的方法和装置 | |
CN102375702A (zh) | 存储器管理设备、存储器管理方法及其程序 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160204 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170626 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20180620 Year of fee payment: 6 |