Earticle

현재 위치 Home 검색결과

결과 내 검색

발행연도

년 - 년

학문분야

자료유형

간행물

검색결과

검색조건
검색결과 : 13건
No
1

GPU는 다수의 워프를 병렬적으로 수행함으로써 레이턴시를 숨기면서 높은 처리량을 제공할 수 있다. 만약 GPU에서 캐 쉬에 대한 요청이 미스를 발생시킨다면 하위 메모리로부터 요청한 데이터를 받을 때까지 MSHR(Miss Status Holding Register)을 통해 미스 정보를 추적하고 다른 워프를 수행한다. 최신 GPU에서는 캐쉬 자원에 대한 과도한 요청이 발생 한 경우 자원점유 실패가 발생하여 GPU 자원을 충분히 활용할 수 없는 경우가 자주 발생한다. 본 논문에서는 MSHR 자원 부족으로 인해 발생하는 성능 감소를 줄이고자 새로운 워프 스케줄링 기법을 제안한다. L1 데이터 캐쉬에서 각 워프 별 캐쉬 미스율은 긴 사이클 동안 비슷하게 유지되는 특성을 이용하여 각 워프들의 캐쉬 미스율을 예측하고, 이를 바탕으 로 MSHR의 자원을 더 이상 사용할 수 없는 상태에서는 낮은 캐쉬 미스율을 보일 것으로 예측되는 워프들과 연산 위주 워프들을 우선적으로 이슈 한다. 제안하는 기법은 예측된 캐쉬 미스율과 MSHR 상태를 기반으로 캐쉬 자원을 더 효율적 으로 사용함으로써 GPU 성능을 향상시킨다. 실험 결과, 제안된 기법은 LRR(Loose Round Robin) 정책에 비해 자원 점유실패 사이클이 25.7% 감소하고 IPC(Instruction Per Cycle)가 6.2% 증가한다.

GPUs can provide high throughput with latency hiding by executing many warps in parallel. MSHR(Miss Status Holding Registers) for L1 data cache tracks cache miss requests until required data is serviced from lower level memory. In recent GPUs, excessive requests for cache resources cause underutilization problem of GPU resources due to cache resource reservation fails. In this paper, we propose a new warp scheduling technique to reduce stall cycles under MSHR resource shortage. Cache miss rates for each warp is predicted based on the observation that each warp shows similar cache miss rates for long period. The warps showing low miss rates or computation-intensive warps are given high priority to be issued when MSHR is full status. Our proposal improves GPU performance by utilizing cache resource more efficiently based on cache miss rate prediction and monitoring the MSHR entries. According to our experimental results, reservation fail cycles can be reduced by 25.7% and IPC is increased by 6.2% with the proposed scheduling technique compared to loose round robin scheduler.

2

그래픽 처리장치 기반 병렬컴퓨은(GPGPU) 응용로그램을 처리하기 한 가장 매력인 고성능 연산 랫폼 하나가 되고 있다. 이러한 경향은 CUDA, OpenCL 등과 같은 병렬 로그래 모델의 사용으로 인해 더욱 증 가하고 있다. GPGPU 구조에서, 최신 GPGPU 스러를 활용하면 스트리 멀티로세서에 스드 블록을 최 한 할당할 수 있다. 하지만, 이러한 스링은 연산 자원 활용률을 극화하는 최의 방법은 아니라는 문제을 가지고 있다. 본 논문에서는 GPGPU 구조의 성능 향상을 해, 스드 블록 벨에서 일반으로 사용되는 라운드 로빈 스링의 단을 분석하고, 동으로 스드 블록의 수를 변경하는 새로운 스링 기법을 제안한다. 제안 된 기법은 메모리와 내부 연결망의 경합에 따라 스트리 로세서에 할당되는 스드 블록의 수를 동으로 변경한 다. 실험결과, 15개의 코어를 가진 GPGPU 랫폼에서 제안된 기법은 라운드 로빈 스링과 비교하여 평균 6.3%의 성능향상을 보임을 알 수 있다.

General-Purpose computing on Graphics Processing Units (GPGPUs) are becoming one of the most attractive computing platforms for handling high performance computing applications. This trend is more and more increasing especially with the help of new parallel programming models like CUDA and OpenCL, etc. The state-of-the-art GPGPU schedulers are likely to allocate as many as possible number of thread blocks into streaming multiprocessors. In fact, this is not always the optimal way to maximize the hardware utilization. This paper studies the drawbacks of the common-used round-robin scheduling at the thread block level. After that, we propose a new technique that can dynamically adjust the number of thread blocks to be assigned to streaming multiprocessors depending on the level of memory and interconnection network contention. Our simulation results on a 15-core GPGPU platform show that the proposed technique provides better performance over the baseline round-robin scheduling by around 6.3% on average.

3

상세 자원 이용률에 기반한 병렬 가속기용 스레드 블록 스케줄링 KCI 등재

반효경, 조경운

국제인공지능학회(구 한국인터넷방송통신학회) 한국인터넷방송통신학회 논문지 제22권 제5호 2022.10 pp.49-54

※ 원문제공기관과의 협약기간이 종료되어 열람이 제한될 수 있습니다.

최근 클라우드 시스템에서 병렬가속기를 사용하는 사례가 늘면서 가속기 내에서 멀티태스킹을 통해 자원 이용률 을 높이는 것이 중요한 이슈로 부각되고 있다. 본 논문에서는 병렬가속기 내 자원 사용 패턴을 컴퓨팅 중심과 메모리 중심으로 분류하여 워크로드를 배치하는 방식이 자원 이용률 측면에서 충분한 효과를 나타내지 못함을 보이고, 워크로드 별 상세 자원 이용률에 기반한 새로운 스레드 블록 스케줄링 기법을 제안한다. 제안한 기법은 기존 방식과 달리 프로파 일링과 스케줄링을 분리하여 스케줄링시의 오버헤드를 줄이고 병목 자원이 일치하지 않는 워크로드들을 최대한 중복 배치하여 자원 이용률을 높인다. 다양한 가상머신 시나리오에 대한 시뮬레이션 실험을 통해 제안한 기법이 병렬가속기의 처리량을 평균 130.6%, 최대 161.4%까지 개선함을 보인다.

With the recent widespread adoption of general-purpose GPUs (GPGPUs) in cloud systems, maximizing the resource utilization through multitasking in GPGPU has become an important issue. In this article, we show that resource allocation based on the workload classification of computing-bound and memory-bound is not sufficient with respect to resource utilization, and present a new thread block scheduling policy for GPGPU that makes use of fine-grained resource utilizations of each workload. Unlike previous approaches, the proposed policy reduces scheduling overhead by separating profiling and scheduling, and maximizes resource utilizations by co-locating workloads with different bottleneck resources. Through simulations under various virtual machine scenarios, we show that the proposed policy improves the GPGPU throughput by 130.6% on average and up to 161.4%.

4

다중 워크로드 환경을 위한 GPGPU 스레드 블록 스케줄링 KCI 등재

박소연, 조경운, 반효경

국제인공지능학회(구 한국인터넷방송통신학회) 한국인터넷방송통신학회 논문지 제22권 제2호 2022.04 pp.71-76

※ 원문제공기관과의 협약기간이 종료되어 열람이 제한될 수 있습니다.

대규모 병렬 워크로드를 GPGPU의 연산 유닛에 할당하기 위한 스케줄링으로 라운드 로빈 방식이 널리 사용되고 있다. 라운드 로빈은 작업을 각 연산 유닛에 순차적으로 할당하여 구현이 쉽다는 장점이 있으나, 클라우드와 같은 다중 워크로드 환경에서는 연산 유닛 간 부하 균형이 잘 이루어지지 않는 문제점이 발생한다. 본 논문에서는 이러한 문제를 해결하기 위해 새로운 스레드 블록 스케줄링을 제안한다. 제안하는 방식은 다양한 GPGPU 워크로드가 만들어낸 스레드 블록들을 그 작업량에 근거해 다중큐로 관리하고 각 연산 유닛의 잔여 자원을 가장 잘 활용할 수 있는 큐에서 스레드 블록을 선택하여 연산 유닛들의 자원 이용률을 극대화시키고 부하균형을 유도한다. 다양한 부하 환경에서의 시뮬레이션 실험을 통해 제안하는 방식이 라운드 로빈 대비 평균 24.8%의 성능개선 효과가 있음을 보인다.

Round-robin is widely used for the scheduling of large-scale parallel workloads in the computing units of GPGPU. Round-robin is easy to implement by sequentially allocating tasks to each computing unit, but the load balance between computing units is not well achieved in multi-workload environments like cloud. In this paper, we propose a new thread block scheduling policy to resolve this situation. The proposed policy manages thread blocks generated by various GPGPU workloads with multiple queues based on their computation loads and tries to maximize the resource utilization of each computing unit by selecting a thread block from the queue that can maximally utilize the remaining resources, thereby inducing load balance between computing units. Through simulation experiments under various load environments, we show that the proposed policy improves the GPGPU performance by 24.8% on average compared to Round-robin.

5

SimTBS: GPGPU 스레드블록 스케줄링 시뮬레이터 KCI 등재

조경운, 반효경

국제인공지능학회(구 한국인터넷방송통신학회) 한국인터넷방송통신학회 논문지 제20권 제4호 2020.08 pp.87-92

※ 원문제공기관과의 협약기간이 종료되어 열람이 제한될 수 있습니다.

GPGPU(General-Purpose GPU)는 수만 단위의 스레드들을 병렬적으로 수행하여 성능을 최대화시킬 수 있지 만, 실질적으로는 스레드들을 그룹화하여 스레드블록(Thread Block) 단위로 작업을 정의하고 GPGPU 하드웨어 자원의 할당 단위로 활용한다. 이러한 역할을 담당하는 스레드블록 스케줄러는 GPGPU내에 하드웨어적으로 구현되어 있으며, 스레드블록들을 하드웨어 자원들에게 라운드로빈 방식으로 할당한다. 그런데, 라운드로빈 정책은 단순 순차 할당 방식으 로서 GPGPU 하드웨어 자원의 활용도에 최적화되어 있지 않다. 본 논문에서는 다양한 스레드블록 스케줄링 방식의 성능 을 정량적으로 분석할 수 있는 스레드블록 스케줄러 모델을 제안하고, 구현된 시뮬레이터의 성능 결과를 통해 기존 GPGPU의 스레드블록 스케줄링 방식이 작업 부하가 높은 경우에는 적합하지 않음을 보이고자 한다.

Although GPGPU (General-Purpose GPU) can maximize performance by parallelizing a task with tens of thousands of threads, those threads are internally grouped into a thread block, which is a base unit for processing and resource allocation. A thread block scheduler is a specialized hardware gadget whose role is to allocate thread blocks to GPGPU processing hardware in a round-robin manner. However, round-robin is a sequential allocation policy and is not optimized for GPGPU resource utilization. In this paper, we propose a thread block scheduler model which can analyze and quantify performances for various thread block scheduling policies. Experiment results from the implemented simulator of our model show that the legacy hardware thread block scheduling does not behave well when workload becomes heavy.

6

Kernel Thread Scheduling in Real-Time Linux for Wearable Computers

Kang, Dong-Wook, Lee, Woo-Joong, Park, Chan-Ik

[Kisti 연계] 한국전자통신연구원 ETRI journal Vol.29 No.3 2007 pp.270-280

※ 협약을 통해 무료로 제공되는 자료로, 원문이용 방식은 연계기관의 정책을 따르고 있습니다.

원문보기

In Linux, real-time tasks are supported by separating real-time task priorities from non-real-time task priorities. However, this separation of priority ranges may not be effective when real-time tasks make the system calls that are taken care of by the kernel threads. Thus, Linux is considered a soft real-time system. Moreover, kernel threads are configured to have static priorities for throughputs. The static assignment of priorities to kernel threads causes trouble for real-time tasks when real-time tasks require kernel threads to be invoked to handle the system calls because kernel threads do not discriminate between real-time and non-real-time tasks. We present a dynamic kernel thread scheduling mechanism with weighted average priority inheritance protocol (PIP), a variation of the PIP. The scheduling algorithm assigns proper priorities to kernel threads at runtime by monitoring the activities of user-level real-time tasks. Experimental results show that the algorithms can greatly improve the unexpected execution latency of real-time tasks.

7

An IPC-based Dynamic Cooperative Thread Array Scheduling Scheme for GPUs

Son, Dong Oh, Kim, Jong Myon, Kim, Cheol Hong

[Kisti 연계] 한국컴퓨터정보학회 Journal of the Korea society of computer and information Vol.21 No.2 2016 pp.9-16

※ 협약을 통해 무료로 제공되는 자료로, 원문이용 방식은 연계기관의 정책을 따르고 있습니다.

원문보기

Recently, many research groups have focused on GPGPUs in order to improve the performance of computing systems. GPGPUs can execute general-purpose applications as well as graphics applications by using parallel GPU hardware resources. GPGPUs can process thousands of threads based on warp scheduling and CTA scheduling. In this paper, we utilize the traditional CTA scheduler to assign a various number of CTAs to SMs. According to our simulation results, increasing the number of CTAs assigned to the SM statically does not improve the performance. To solve the problem in traditional CTA scheduling schemes, we propose a new IPC-based dynamic CTA scheduling scheme. Compared to traditional CTA scheduling schemes, the proposed dynamic CTA scheduling scheme can increase the GPU performance by up to 13.1%.

8

A Novel Cooperative Warp and Thread Block Scheduling Technique for Improving the GPGPU Resource Utilization

DOCONG THUAN, 최용, 김종면, 김철홍

[NRF 연계] 한국정보처리학회 KIPS Transactions on Computer and Communication Systems Vol.6 No.5 2017.05 pp.219-230

※ 협약을 통해 무료로 제공되는 자료로, 원문이용 방식은 연계기관의 정책을 따르고 있습니다.

원문보기

General-Purpose Graphics Processing Units (GPGPUs) build massively parallel architecture and apply multithreading technology to explore parallelism. By using programming models like CUDA, and OpenCL, GPGPUs are becoming the best in exploiting plentiful thread-level parallelism caused by parallel applications. Unfortunately, modern GPGPU cannot efficiently utilize its available hardware resources for numerous general-purpose applications. One of the primary reasons is the inefficiency of existing warp/thread block schedulers in hiding long latency instructions, resulting in lost opportunity to improve the performance. This paper studies the effects of hardware thread scheduling policy on GPGPU performance. We propose a novel warp scheduling policy that can alleviate the drawbacks of the traditional round-robin policy. The proposed warp scheduler first classifies the warps of a thread block into two groups, warps with long latency and warps with short latency and then schedules the warps with long latency before the warps with short latency. Furthermore, to support the proposed warp scheduler, we also propose a supplemental technique that can dynamically reduce the number of streaming multiprocessors to which will be assigned thread blocks when encountering a high contention degree at the memory and interconnection network. Based on our experiments on a 15-streaming multiprocessor GPGPU platform, the proposed warp scheduling policy provides an average IPC improvement of 7.5% over the baseline round-robin warp scheduling policy. This paper also shows that the GPGPU performance can be improved by approximately 8.9% on average when the two proposed techniques are combined.

9

Multicore Real-Time Scheduling to Reduce Inter-Thread Cache Interferences

Ding, Yiqiang, Zhang, Wei

[Kisti 연계] 한국정보과학회 Journal of computing science and engineering Vol.7 No.1 2013 pp.67-80

※ 협약을 통해 무료로 제공되는 자료로, 원문이용 방식은 연계기관의 정책을 따르고 있습니다.

원문보기

The worst-case execution time (WCET) of each real-time task in multicore processors with shared caches can be significantly affected by inter-thread cache interferences. The worst-case inter-thread cache interferences are dependent on how tasks are scheduled to run on different cores. Therefore, there is a circular dependence between real-time task scheduling, the worst-case inter-thread cache interferences, and WCET in multicore processors, which is not the case for single-core processors. To address this challenging problem, we present an offline real-time scheduling approach for multicore processors by considering the worst-case inter-thread interferences on shared L2 caches. Our scheduling approach uses a greedy heuristic to generate safe schedules while minimizing the worst-case inter-thread shared L2 cache interferences and WCET. The experimental results demonstrate that the proposed approach can reduce the utilization of the resulting schedule by about 12% on average compared to the cyclic multicore scheduling approaches in our theoretical model. Our evaluation indicates that the enhanced scheduling approach is more likely to generate feasible and safe schedules with stricter timing constraints in multicore real-time systems.

10

다중 스레드 모델에서 스레드 우선 순위에 따른 스레드 스케쥴링 기법

이정호, 고훈준, 양창모, 유원희

[Kisti 연계] 한국정보과학회 한국정보과학회 학술대회논문집 2000 pp.659-661

※ 협약을 통해 무료로 제공되는 자료로, 원문이용 방식은 연계기관의 정책을 따르고 있습니다.

원문보기

폰 노이만 모델의 지역성과 데이터플로우 모델의 병렬성을 결합하여 등장한 모델이 다중 스레드 모델이다. 다중스레드 모델의 목적은 통신시간과 계산 시간을 겹침으로써 프로세서의 활용도를 높이고자 하는 것이다. 기존의 대부분의 다중 스레드 모델의 스레드 스케쥴링 기법은 FIFO 혹은 FILO 방식을 사용하고 있다. 본 논문에서는 프로세서의 활용도를 높이고 프로세서의 휴지 시간을 줄이기 위해서 원격 함수 호출 혹은 원격 메모리 참조 기능의 스레드(이후로는 원격 스레드라 부름)와 계산 기능의 스레드가 동시에 활성화되었을 때 원격 스레드들을 먼저 수행하는 것이 프로세서의 지연 시간을 줄이고 병렬성을 높이는 데 효과적임을 제안한다. 이것을 구현하기 위해서 프레임 내부의 지속 벡터(CV)를 CCV(call continuation vector)와 LCV(local continuation vector) 둘로 구분하였다. 스레드가 활성화될 때 CCV에는 원격 스레드들을, LCV에는 계산 스레드들을 저장한 후, CCV에 저장된 스레드들을 먼저 수행하고 LCV를 나중에 수행한다.

11

GPGPU 자원 활용 개선을 위한 블록 지연시간 기반 워프 스케줄링 기법

최용, 김종면, 김철홍

[Kisti 연계] 한국정보처리학회 정보처리학회논문지/컴퓨터 및 통신 시스템 Vol.6 No.5 2017 pp.219-230

※ 협약을 통해 무료로 제공되는 자료로, 원문이용 방식은 연계기관의 정책을 따르고 있습니다.

원문보기

멀티스레딩 기법이 적용된 GPGPU는 내부 병렬 자원들을 기반으로 데이터를 고속으로 처리하고 메모리 접근시간을 감소시킬 수 있다. CUDA, OpenCL 등과 같은 프로그래밍 모델을 활용하면 스레드 레벨 처리를 통해 응용프로그램의 고속 병렬 수행이 가능하다. 하지만, GPGPU는 범용 목적의 응용프로그램을 수행함에 있어 내부 하드웨어 자원들을 효과적으로 사용하지 못한다는 단점을 보이고 있다. 이는 GPGPU에서 사용하는 기존의 워프/스레드 블록 스케줄러가 메모리 접근시간이 긴 명령어를 처리하는데 있어서 비효율적이기 때문이다. 이와 같은 문제점을 해결하기 위해 본 논문에서는 GPGPU 자원 활용률을 개선하기 위한 새로운 워프 스케줄링 기법을 제안하고자 한다. 제안하는 워프 스케줄링 기법은 스레드 블록의 워프들 중 긴 메모리 접근시간을 가진 워프와 짧은 메모리 접근시간을 가진 워프들을 구분한 후, 긴 메모리 접근시간을 가진 워프를 우선 할당하고, 짧은 메모리 접근시간을 가진 워프를 나중에 할당하여 처리한다. 또한, 메모리와 내부 연결망에서 높은 경합이 발생했을 때 동적으로 스트리밍 멀티프로세서의 수를 감소시켜 워프 스케줄러를 효과적으로 사용할 수 있는 기법도 제안한다. 실험결과에 따르면, 15개의 스트리밍 멀티프로세서를 가진 GPGPU 플랫폼에서 제안된 워프 스케줄링 기법은 기존의 라운드로빈 워프 스케줄링 기법과 비교하여 평균 7.5%의 성능(IPC)이 향상됨을 확인할 수 있다. 또한, 제안된 두 개의 기법을 동시에 적용하였을 경우에는 평균 8.9%의 성능(IPC) 향상을 보인다.

General-Purpose Graphics Processing Units (GPGPUs) build massively parallel architecture and apply multithreading technology to explore parallelism. By using programming models like CUDA, and OpenCL, GPGPUs are becoming the best in exploiting plentiful thread-level parallelism caused by parallel applications. Unfortunately, modern GPGPU cannot efficiently utilize its available hardware resources for numerous general-purpose applications. One of the primary reasons is the inefficiency of existing warp/thread block schedulers in hiding long latency instructions, resulting in lost opportunity to improve the performance. This paper studies the effects of hardware thread scheduling policy on GPGPU performance. We propose a novel warp scheduling policy that can alleviate the drawbacks of the traditional round-robin policy. The proposed warp scheduler first classifies the warps of a thread block into two groups, warps with long latency and warps with short latency and then schedules the warps with long latency before the warps with short latency. Furthermore, to support the proposed warp scheduler, we also propose a supplemental technique that can dynamically reduce the number of streaming multiprocessors to which will be assigned thread blocks when encountering a high contention degree at the memory and interconnection network. Based on our experiments on a 15-streaming multiprocessor GPGPU platform, the proposed warp scheduling policy provides an average IPC improvement of 7.5% over the baseline round-robin warp scheduling policy. This paper also shows that the GPGPU performance can be improved by approximately 8.9% on average when the two proposed techniques are combined.

12

쓰레드를 이용한 루프 캐리 종속성을 가진 루프의 스케쥴링

김현철, 이종국, 유기영

[Kisti 연계] 한국정보과학회 한국정보과학회 학술대회논문집 2000 pp.627-629

※ 협약을 통해 무료로 제공되는 자료로, 원문이용 방식은 연계기관의 정책을 따르고 있습니다.

원문보기

루프를 병렬 처리하기 위해 공유 메모리 다중처리기에 루프를 할당하는 네 가지 기법들을 루프 캐리 종속성(loop-carried dependence)을 가진 루프의 할당에 적용하기 위해 하여 변형 후 그들의 성능을 비교 분석한다. 구현은 자바 쓰레드 환경에서 하였다. 또한, 반복들간에 종속 관계가 생기는 루프의 효율적 수행을 위해 CDSS(Carried-Dependence Self-Scheduling)할당 기법을 제안한다. 종속 거리, 쓰레드 수, 반복 수등을 다양하게 하여 시뮬레이션 해 본 결과 제안한 CDSS는 양호한 부하 균형을 유지하였으며 다른 기법들에 비해 루프 수행 시간을 줄여 효율적임을 알 수 있었다.

13

스레드를 이용한 계층적 태스크 그래프(HTG)의 복합 노드 스케쥴링 기법

김현철, 김효철

[Kisti 연계] 한국정보과학회 정보과학회논문지:시스템 및 이론 Vol.29 No.8 2002 pp.445-455

※ 협약을 통해 무료로 제공되는 자료로, 원문이용 방식은 연계기관의 정책을 따르고 있습니다.

원문보기

본 논문은 공유 메모리 시스템에서 계층적 태스크 그래프(Hierarchical Task Graph, HTG)의 복합 노드 태스크들을 효율적으로 수행하기 위한 새로운 태스크 스케쥴링 기법을 소개한다. 함수 병렬성 추출을 위해 제안된 기법은 별도의 전역 스케쥴러가 필요 없이 프로세서 스스로가 스케쥴링 기능을 행하는 자동 스케쥴링이다. 제안된 스케쥴링 기법을 단일처리기 시스템을 비롯한 여러 플랫폼에 적용하기 위해 자바 스레드를 이용하여 구현하였으며, 기존의 비트 벡터 방법과 성능을 비교 분석하였다. 실험 파라메터 값을 이용한 실험 결과, 제안된 스케쥴링 기법은 수행 시간 측면에서 효율적이며 양호한 부하 균형을 유지하였다. 또한, 제안된 기법은 기존의 방법에 비해 메모리 사용량을 줄일 수 있었다.

In this paper, we present a new task scheduling scheme ior the efficient execution of the tasks of compound nodes of hierarchical task graph(HTG) on shared memory system. The proposed scheme for exploitation functional parallelism is autoscheduling that performs the role of scheduling by processor itself without any dedicated global scheduler. To adapt the proposed scheduling scheme for various platforms, Including a uni-processor systems, Java threads were used for implementation, and the performance is analyzed in comparison with a conventional bit vector method. The experimental results showed that the proposed method was found to be more efficient in its execution time and exhibited good load-balancing when using the experimental parameter values. Furthermore, the memory size could be reduced when using the proposed algorithm compared with a conventional scheme.

 
페이지 저장