드라이스톤
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
드라이스톤은 컴퓨터 시스템의 성능을 측정하기 위해 사용되는 벤치마크 프로그램이다. 부동 소수점 연산을 포함하지 않는다는 특징이 있으며, 초당 드라이스톤 수 또는 DMIPS(Dhrystone MIPS)를 통해 성능을 측정한다. 드라이스톤은 컴파일러 최적화에 취약하고, 코드와 데이터 세트 크기가 작아 실제 시스템 성능을 정확하게 반영하지 못한다는 한계가 있다. 하지만 간단하고 사용하기 쉬우며, 임베디드 컴퓨팅 분야에서 널리 활용된다.
더 읽어볼만한 페이지
- 컴퓨터 벤치마크 - 벤치마크 (컴퓨팅)
벤치마크는 컴퓨터 시스템 성능 측정 지표 또는 과정 자체를 의미하며, 시스템 성능 비교를 위해 특정 작업 시뮬레이션을 통해 시스템 또는 구성 요소의 성능을 측정하는 데 사용되지만, 결과가 과장되거나 다른 중요한 요소들을 간과할 수 있다는 문제점도 존재한다. - 컴퓨터 벤치마크 - 플롭스
플롭스(FLOPS)는 컴퓨터의 부동 소수점 연산 속도를 나타내는 단위이며, 슈퍼컴퓨터의 성능을 평가하는 지표로 사용된다.
드라이스톤 - [IT 관련 정보]에 관한 문서 | |
---|---|
기본 정보 | |
개발자 | 라인홀트 P. 바이커 |
최초 릴리스 | 1984년 |
유형 | 컴퓨터 벤치마크 프로그램 |
2. 역사
1980년대 초, 컴퓨터 시스템의 성능을 평가하기 위한 다양한 벤치마크 프로그램들이 개발되었다. 웻스톤은 부동 소수점 연산 성능을 측정하는 대표적인 벤치마크였지만, 정수 연산 성능을 제대로 반영하지 못한다는 한계가 있었다. 이에 라인홀트 P. 바이커는 정수 연산 성능을 중점적으로 측정하는 새로운 벤치마크 프로그램인 드라이스톤을 개발하였다.
드라이스톤은 상업용 컴파일러 제작자들의 표적이 되었다. 1988년 3월 바이커와 리차드슨은 벤치마크 버전 2.0을 발표하여 다양한 컴파일러 기술을 무력화하려 했으나, 부분적으로만 성공했다. 같은 해 5월에 발표된 드라이스톤 2.1은 약간의 변경 사항을 포함하여 현재 드라이스톤의 정의로 남아 있다.
컴파일러 최적화와 관련된 문제 외에도 드라이스톤은 작은 코드 크기와 데이터 세트 크기, 문자열 연산 과다 표현, 보고된 점수에 컴파일러 및 최적화 정보 미포함 등 다양한 문제점이 제기되었다.
이러한 문제점에도 불구하고 드라이스톤은 사용 편의성, 잘된 문서화, 완전 자체 포함, 높은 이해도, 거의 모든 시스템에서 작동 가능성 등의 장점 덕분에 널리 사용되었다. 특히 임베디드 컴퓨팅 분야에서 널리 사용되며, EEMBC, CoreMark, HINT, Stream, Bytemark와 같은 벤치마크 프로그램 개발에도 영향을 주었다.
2. 1. 개발 배경
1980년대 초, 컴퓨터 시스템의 성능을 평가하기 위한 다양한 벤치마크 프로그램들이 개발되었다. 그 중 웻스톤은 부동 소수점 연산 성능을 측정하는 대표적인 벤치마크로 널리 사용되었다. 하지만 웻스톤은 정수 연산 성능을 제대로 반영하지 못한다는 한계가 있었다. 이에 라인홀트 P. 바이커는 정수 연산 성능을 중점적으로 측정하는 새로운 벤치마크 프로그램인 드라이스톤을 개발하게 되었다.드라이스톤은 상업용 컴파일러 제작자들의 표적이 되었다. 다양한 현대 컴파일러의 정적 코드 분석(데드 코드 제거 등) 기술은 합성 벤치마크의 사용과 설계를 더 어렵게 만들었다. 1988년 3월 바이커와 리차드슨은 벤치마크 버전 2.0을 발표하여 다양한 컴파일러 기술을 무력화하려 했으나, 부분적으로만 성공했다. 같은 해 5월에 발표된 드라이스톤 2.1은 약간의 변경 사항을 포함하여 현재 드라이스톤의 정의로 남아 있다.
컴파일러 최적화와 관련된 문제 외에도 드라이스톤은 작은 코드 크기와 데이터 세트 크기 등 다양한 문제가 제기되었다. 문자열 연산이 과다하게 표현된 문제는 주로 언어와 관련이 있는데, Ada와 Pascal은 언어에서 일반 변수로 문자열을 사용하지만 C는 그렇지 않기 때문에, 참조 벤치마크에서 간단한 변수 할당이 C 라이브러리에서 버퍼 복사 연산이 되는 문제가 발생했다. 또한 보고된 점수에 어떤 컴파일러가 사용되었고 어떤 최적화가 이루어졌는지와 같은 중요한 정보가 포함되지 않는다는 문제도 있었다.
이러한 문제점에도 불구하고 드라이스톤은 사용하기 쉽고, 문서화가 잘 되어 있으며, 완전히 자체 포함되어 있고, 잘 이해되고 있으며, 거의 모든 시스템에서 작동하도록 만들 수 있다는 장점 덕분에 널리 사용되었다. 특히 임베디드 컴퓨팅 분야에서 널리 사용되고 있으며, EEMBC, CoreMark, HINT, Stream, Bytemark와 같은 벤치마크 프로그램 개발에도 영향을 주었다.
2. 2. 발전 과정
1984년에 드라이스톤 1.0 버전이 처음 발표되었다. 그러나 상업용 컴파일러 제작자들이 드라이스톤 벤치마크 결과에 영향을 미치는 최적화 기술을 개발하면서 문제가 발생했다. 다양한 현대 컴파일러의 정적 코드 분석 기술, 예를 들어 데드 코드 제거(프로세서를 사용하지만 사용되거나 출력되지 않는 내부 결과를 생성하는 코드)와 같은 기술은 합성 벤치마크의 사용과 설계를 어렵게 만들었다.이러한 문제에 대응하기 위해 1988년 3월, 바이커(Weicker)와 리처드슨(Richardson)은 컴파일러 최적화 기술을 무력화하기 위한 여러 변경 사항을 포함한 드라이스톤 2.0 버전을 발표했다. 이들은 기본적인 벤치마크는 변경하지 않도록 신중하게 버전을 개발했지만, 컴파일러를 무력화하려는 노력은 부분적으로만 성공했다.
같은 해 5월에 발표된 드라이스톤 2.1은 사소한 변경 사항을 포함했으며, 현재까지 널리 사용되고 있다.
컴파일러 최적화 외에도 드라이스톤에는 여러 가지 문제점이 제기되었다. 코드 크기와 데이터 세트 크기가 작다는 점 등 대부분의 문제는 1984년 발표 당시 이미 알려져 있었다. 더 미묘한 문제는 문자열 연산이 과도하게 반영되었다는 것인데, 이는 주로 언어와 관련이 있다. Ada와 Pascal은 언어에서 일반 변수로 문자열을 사용하지만 C는 그렇지 않기 때문에, 참조 벤치마크에서 간단한 변수 할당이 C 라이브러리에서는 버퍼 복사 연산이 된다. 또 다른 문제는 보고된 점수에 어떤 컴파일러가 사용되었고 어떤 최적화가 이루어졌는지와 같이 시스템 비교에 중요한 정보가 포함되지 않는다는 것이다.
드라이스톤은 간단한 벤치마크로서 놀라울 정도로 탄력적으로 남아 있지만, 실제 성능을 측정하는 데 있어서는 여전히 논란의 여지가 있다. 그럼에도 불구하고 사용하기 쉽고, 문서화가 잘 되어 있으며, 완전히 자체 포함되어 있고, 잘 이해되고 있으며, 거의 모든 시스템에서 작동하도록 만들 수 있다는 장점 때문에 널리 사용되고 있다. 특히 임베디드 컴퓨팅 분야에서 널리 사용되며, EEMBC 벤치마크 스위트, CoreMark 독립형 벤치마크, HINT, Stream, Bytemark, 메모리 하위 시스템(Cachebench), TCP/IP(TTCP) 등과 같은 보다 구체적인 벤치마크와 함께 사용된다.
3. 드라이스톤과 웻스톤
부동 소수점 연산을 포함하지 않으며, 따라서 이름은 당시 인기가 높았던 부동 소수점 연산 벤치마크인 Whetstone을 이용한 말장난이다. 벤치마크의 출력값은 초당 드라이스톤 수(초당 메인 코드 루프의 반복 횟수)이다.
Whetstone과 Dhrystone은 모두 ''합성'' 벤치마크로, 몇몇 일반적인 프로그램들의 프로세서 사용을 통계적으로 모방하도록 신중하게 설계된 간단한 프로그램이다. 1972년에 개발된 Whetstone은 원래 1970년의 측정을 기반으로 전형적인 알골 60 프로그램을 모방하려고 했지만, 결국에는 포트란 버전으로 가장 인기를 얻었으며, 이는 1960년대 컴퓨팅의 고도로 수치적인 지향성을 반영했다.[1]
4. 특징
드라이스톤은 RISC 대 CISC와 같이 서로 다른 명령어 집합 간의 명령어 수를 비교할 때 단순 비교가 혼동을 야기할 수 있기 때문에, MIPS(초당 백만 개의 명령어)보다 더 의미 있는 결과를 나타낼 수 있다. 예를 들어, 동일한 상위 수준의 작업이 RISC 머신에서는 더 많은 명령어를 필요로 할 수 있지만, 단일 CISC 명령어보다 더 빠르게 실행될 수 있다. 따라서 드라이스톤 점수는 초당 프로그램 반복 완료 횟수만 계산하여, 개별 머신이 이 계산을 머신별 방식으로 수행할 수 있도록 한다. 드라이스톤 벤치마크의 또 다른 일반적인 표현은 드라이스톤 점수를 1757(VAX 11/780에서 초당 얻은 드라이스톤 수, 1MIPS 머신으로 추정)로 나눈 DMIPS(MIPS)이다.
4. 1. 측정 방식
드라이스톤은 명령어 집합 간의 명령어 수 비교(예: RISC 대 CISC)가 단순 비교를 혼동시킬 수 있기 때문에 MIPS(초당 백만 개의 명령어)보다 더 의미 있게 결과를 나타낼 수 있다. 예를 들어, 동일한 상위 수준의 작업이 RISC 머신에서 훨씬 더 많은 명령어를 필요로 할 수 있지만, 단일 CISC 명령어보다 더 빠르게 실행될 수 있다. 따라서 드라이스톤 점수는 초당 프로그램 반복 완료 횟수만 계산하여 개별 머신이 이 계산을 머신별 방식으로 수행할 수 있도록 한다. 드라이스톤 벤치마크의 또 다른 일반적인 표현은 드라이스톤 점수를 1757(VAX 11/780에서 초당 얻은 드라이스톤 수, 1 MIPS 머신으로 추정)로 나눈 '''DMIPS'''(드라이스톤 MIPS)이다.결과를 나타내는 또 다른 방법은 DMIPS/MHz이며, 여기서 DMIPS 결과는 CPU 주파수로 더 나누어져서 서로 다른 클럭 속도로 실행되는 CPU를 더 쉽게 비교할 수 있다.
4. 2. DMIPS
드라이스톤은 서로 다른 명령어 집합(예: RISC 대 CISC) 간의 명령어 수 비교가 단순 비교를 혼동시킬 수 있기 때문에 MIPS(초당 백만 개의 명령어)보다 더 의미 있게 결과를 나타낼 수 있다. 예를 들어, 동일한 상위 수준의 작업이 RISC 머신에서 훨씬 더 많은 명령어를 필요로 할 수 있지만, 단일 CISC 명령어보다 더 빠르게 실행될 수 있다. 따라서 드라이스톤 점수는 초당 프로그램 반복 완료 횟수만 계산하여 개별 머신이 이 계산을 머신별 방식으로 수행할 수 있도록 한다. 드라이스톤 벤치마크의 또 다른 일반적인 표현은 드라이스톤 점수를 1757(VAX 11/780에서 초당 얻은 드라이스톤 수, 1MIPS 머신으로 추정)로 나눈 '''DMIPS'''(드라이스톤 MIPS)이다.4. 3. DMIPS/MHz
서로 다른 클럭 속도로 실행되는 CPU 간의 성능 비교를 위해 DMIPS/MHz 지표가 사용되기도 한다. 이는 DMIPS 값을 CPU 클럭 속도(MHz)로 나눈 값이다.5. 한계점 및 비판
드라이스톤 벤치마크는 실제 시스템의 성능을 정확하게 반영하지 못한다는 비판을 받으며, 다음과 같은 한계점을 갖는다.
- 드라이스톤은 현대 실제 프로그램과는 다른 특이한 코드를 사용한다.[2]
- 컴파일러 최적화에 취약하다. 예를 들어, 문자열 복사 성능 측정에 사용되는 많은 문자열 복사는 실제 프로그램에서는 보기 힘든 고정 길이 및 정렬된 시작점을 가진다. 최적화기는 이를 루프 없는 워드 이동으로 대체하여 성능을 과장할 수 있으며, 때로는 30% 이상 차이가 나기도 한다.[3]
- 드라이스톤의 작은 코드는 현대 CPU의 명령어 캐시에 들어가 명령어 인출 성능을 제대로 측정하지 못한다.[2] 또한, 데이터 캐시에도 완전히 들어가 데이터 캐시 미스 성능을 반영하지 못한다. 이러한 문제를 해결하기 위해 SPECint 벤치마크는 1988년에 훨씬 더 큰 프로그램 모음(컴파일러 포함)을 포함하도록 만들어졌으며, 이는 당시 L1 또는 L2 캐시에 들어갈 수 없었다.
6. 현대적 의의 및 활용
드라이스톤은 사용하기 쉽고, 문서화가 잘 되어 있으며, 완전히 자체 포함되어 있고, 거의 모든 시스템에서 작동하도록 만들 수 있다는 장점이 있다. 이러한 장점 덕분에 여전히 널리 사용되고 있으며, 특히 임베디드 컴퓨팅 분야에서 프로세서 성능 평가를 위한 벤치마크로 활용되고 있다.
하지만, 드라이스톤은 코드 및 데이터 세트 크기가 작고, 문자열 연산이 과도하게 표현되는 등의 문제점을 가지고 있다. 또한, 보고된 점수에 어떤 컴파일러가 사용되었고 어떤 최적화가 이루어졌는지와 같은 중요한 정보가 포함되지 않는다는 문제도 제기되었다.
그럼에도 불구하고, 드라이스톤은 여전히 널리 사용되고 있으며, EEMBC 벤치마크 스위트, CoreMark, HINT, Stream, Bytemark와 같은 더 구체적인 벤치마크들이 개발되어 함께 활용되기도 한다.
참조
[1]
문서
Pun
[2]
웹사이트
Dhrystone Benchmark: History, Analysis, "Scores" and Recommendations
https://johnloomis.o[...]
2020-04-28
[3]
서적
Microcontrollers: Hardware and Firmware for 8-bit and 32-bit devices
Società Editrice Esculapio
[4]
서적
Computer Organization and Design: The Hardware/Software Interface
Morgan Kaufmann Publishers
[5]
문서
Pun
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com