AMD Radeon 개발 비화

2010년에 이미 다른 분들 블로그를 통해서 소개가 되었지만 나는 이제 읽었다. parkoz 에서 번역된

에서 얻은 내용 정리. 참고로 RV870 은 Radeon HD 58XX, 5970 을 말한다.(Evergreen (GPU family) 의 codename cypress)
ParkPD블로그(ATI 의 Radeon HD 5870 인 RV870의 개발 비화 )에도 일부 내용이 소개되어 있음.

1. 그래픽 카드의 성수기는? : 4분기 연말 휴일 시즌이 보통이고 특별하게 최신 DirectX 버젼업이나 윈도우즈 새 버젼 발매일

2. AMD(정확하게는 그래픽부서)의 제품 개발 철학

최근 인텔에서는 제품 개발 정책을 전력 소비율 1% 증가할 때마다 성능 2% 향상시키는 것으로 바꾼 바 있다. ATI의 철학은 칩에 들어갈 기능들은 제품 출시일을 늦춰서는 안된다는 것이다.

AMD나 NVIDIA 모두 전통적으로 당시 개발조건의 한계에 가까운 단일 GPU의 플래그십 제품을 만들고 스펙다운을 시켜 주류시장의 제품들을 출시해왔다. amd는 주변 여건이나 한계에 끝까지 돌진하지 않고, 적당한 성능의 gpu를 만들고 2개의 gpu를 하나의 그래픽카드에 실는 방식을 사용했다. 빠른 시장 대응을 얻어냈다고. 조금 더 자세한 내용은 공정으로 압도하는 RV770. ATI Radeon HD 4800 시리즈를 읽어보면 된다.

3. 공정개선을 하면 수율이 올라가서 돈을 쉽게 벌 수 있겠네 했는데 그것도 아니더라. 공정이 바뀌면 웨이퍼당 단가도 같이 올라간다고.

4. ‘도약’이라는 메타포

도약(jump)라고 봐야 한다. 도약을 위해서 미리 준비를 열심히 하고, 원하는 지점에 착지하려고 안간힘을 쓰지만, 한번 발이 땅에서 떨어지게 되면 어디에 착지할지 마음대로 정할 수 없다.

5. 2015년에는 어떤 제품이 우리를 기다릴까

바로 6년 내로 최초의 홀로덱을 만드는 것이다. 최초의 홀로덱은 180도의 반원통형 디스플레이로 양방향으로 구성되어 정확한 입체 사운드를 구축하게 된다. 그리고 이 모든 것이 현실적으로 돌아가려면 강력한 그래픽 성능이 필요할 것이다. 이는 최소한 100M 픽셀의 해상도이며, 이건 30인치 모니터의 해상도의 25배나 되는 수치이다.

줄거리를 요약하지 않았다. 실제 내용은 매우 흥미진진함. 🙂

[C++] unsigned and signed

int _tmain(int argc, _TCHAR* argv[])
{
	int a	       = -3;
	unsigned int b = 2;

	if ( b + a < 0)
	{
		cout<<"hello"<<endl;
	}
	else
	{
		cout<<"world"<<endl;
	}
	return 0;
}

무조건 world 가 출력된다. vs2010 에서는 warning level 4 설정을 하더라도 경고는 출력되지 않는다. 언어의 명세라서 경고에 넣지 않은 듯. (명세 이름이 암시적 타입 변환이라니 OTL ‘명세’와 ‘암시’는 안 어울린다고…) a 가 unsigned int 로 promotion 되는 것이 원인.

위의 문제는 잘 들어나지 않다가 약간의 수정으로 발생할 수 있다. 6번 라인이 원래 b + a == -1 였다면 기대한 대로 hello 가 출력된다.

좀 더 자세한 것은 The C++ Programming Language 부록 C 6.1, C 6.3 을 보자. C의 경우는 C99 Standard 6.3.1.8을 보자.

유사한 디버깅 사례로 민장님 블로그1를 참고하자.

pvs-studio 설치 후 바로 작동이 안될 때 (v008 error, Microsoft was unexpected at this time)

회사에서 PT문서를 만들 일이 있었다. 내 IDE는 놀고 나만 일하는 게 억울해서(?), 얼마 전에 슥 봤었던 code analyzer – pvs-studio(http://www.viva64.com/) 를 깔아봤다. 트라이얼 배포이고, 산 사람은 시리얼 키를 등록하면 원래 기능이 다 되는 듯 하다.

일단 설치했더니 pvs-studio 메뉴가 생겼음. check solution 을 하니 아래와 같은 메시지가파일 개수만큼 뜬다.

Microsoft was unexpected at this time

덧붙여 에러가 하나(v008) 더 발생하긴 하는데 ‘이럴 때는 파일이 락이 걸렸던지 어쩌구 저쩌구’ 지만 그런 일이 없으므로 위의 메시지로 구글링했다.

http://www.blinnov.com/2010/06/04/microsoft-was-unexpected-at-this-time/en/

 

내 증상은 위의 링크와 같아서 문제를 해결했다. 시스템 변수1 중에 path 값에 “” 로 경로가 래핑된 게 있었다. 그 경로에서 “” 를 지워주니 해결됨. 아마도 pvs-studio 에서 “”로 래핑된 path 값 파싱을 제대로 못 하는 듯. 저 블로그 저자는 저 문제로 2일이나 고생했다고. 고마워요. vital 씨. (블로그 저자)

 

 

  1. 윈7 기준으로 컴퓨터->속성->환경 변수-> path 항목