요즘은 '편한' 시대다.
조선시대 때에 서울에서 부산까지 가는 방법은
1) 걸어간다.
2) 말 타고 간다.
3) 가마타고 간다.
라는 선택지 밖에 없었다.
그러나 지금은 수많은 방법이 있다.
지금도 '굳이' 저 방법을 사용하는 사람은, 국토대장정, 배낭여행 아니면 없을거다.
근데 AMD는 굳이 저 방법을 쓴다
나는 2018 년 부터 AMD Radeon GPU를 사용했다,
그때부터 학교에서 GPU 이용해서 쓰는 코드를 일부 작성 하였었는데,
대게 공기관에는 NDIVIA GPU가 설치되어 있기에 그쪽으로 최적화 해서 작업을 했었다.
그러다가 집에서 잠깐 돌려보려고 집에 코드를 가져오면 AMD 용으로 환경을 바꿔줘야 했는데,
AMD의 Radeon 기반 자료를 찾는건 너무 빡세서, 1주~2주 단위로 찾다 빡쳐서 포기한다음
결국 AWS 를 통해 NVIDIA GPU로 구동했던 기억이 난다.
반면
NVIDIA 의 지원은 치밀하다.
CUDA 나 OPENCL 을 이용하려면 그냥 구글에 검색만 한 줄 치면 된다.
그럼 온갖가지 정보들을 말해준다.
"야 openCL 쓸려면 이 SDK 에 예제 있으니까 이거 응용해서 함 바바"
"행렬벡터 연산 할 수 있는 코드야 이것좀 봐봐 우리가 예제 만들어놨어"
과도하게 친절할 정도로 잘 알려준다.
초보 개발자 입장에서도 굳이 찾아볼 필요가 없다.
업체의 적극성으로 인해 커뮤니티도 활성화 된다.
당장 Python 에서 머신러닝을 CUDA 로 돌리는 방법은 찾아보면 1분안에 누구라도 예제 코드를 찾을 수 있다.
근데 ROCM 으로 Radeon 을 통해 돌리는 방법은? 제대로된 방법을 찾을려 하면 최소 30분가량은 소요될 것이다.
막상 돌려보면 GPU 로드율은 100%를 찍는데, 속도는 처참하다. 해결법을 또 찾아야 된다.
이 과정이 정말 엿같다.
이와 똑같이
OpenCL 관련된 라이브러리를 Radeon 용으로 찾으려면 어떻게 하냐!?
1. StackOverflow 가서 자료 찾아보고
2. StackOverflow 가서 찾은 자료로 둘러보는데, SDK가 '공홈' 엔 없고 복사본 떠논것만 넷상에 떠도는걸 발견하고.
3. 존나 이상해서 AMD 공홈커뮤에 가서 나랑 같은사람 있는지 없는지 찾아보면, 나랑 같은 생각하는 놈이 있는데.
4. 그럼 이 포스트를 줄줄줄줄 읽다가.
5. 관리자 새끼가 이상한 GitHub 링크를 알려주면 거기 들어가 본다.
6. 그럼 왠 저장소가 나오는데, 네이밍 센스자체가 AMD랑 좆도 관련 없을것 같은 저장소다.
7. 존나 현타와서 내가 2시간을 이딴대다 버리다니, AMD 새끼들 뭐하는거지 욕박을려고 커뮤니티 읽다보면
8. 그나마 점잖케 욕해준 형님이 계시고
9. 이 형님한테 따봉하나 박아주고
10. 개빡쳐서 바람좀 쐬다 코딩시작... 할려다가 좀 이상해서 다시 살펴보면.
11. 생각해보니까 이거 크로노스 그룹에서 관리하는데, 얘들 저장소에는 코드 없나?
12. 가보면 존나 이쁘게 잘 되있는거 발견하고
13. 빌드후에 안에 살펴보면 똑같은 파일이 버전업되서 들어있는거 발견하고.
14. 관리자새끼 욕을 박을려고 amd community 들어가다가, 혹시 모르니까 저장소 개설일만 확인해 보자 하고 살펴보면
관리자가 저 저장소 알려주려고 글 쓴건 2018 년.
15. 하... 그래 2020년 2월 10일... 씨발... 관리자가 저당시에 '잘못' 알려준건 아니구나... 그냥 AMD가 좆같은거구나...
16. 코딩시작
17. 일단 예제부터 잘 돌아가나 테스트
18. openCV 3.0 버전부터는 이딴 뻘짓이 필요없다는걸 깨닫고는 좌절
참... 어렵다 AMD...
우선 위 과정에서 내가 한 실책은 'openCL' 이 AMD 가 제공해줘야 하는것으로 착각한 것이다.
openCL 은 AMD가 참여해 있는 프로젝트로서, 크로노스 그룹이 관리하는 저장소에서 그 SDK 를 찾아야 마땅했다.
한편으론 이건 NVIDIA 가 너무 친절하게 잘 기술해 논 탓 + AMD가 기존에는 openCL 용 SDK 를 제공했었는데
아무런 설명없이 없앤 탓이 크다.
사이트에 설명 한줄이라도 남겨두면 뭐가 덧날까?...
'Miscellaneous' 카테고리의 다른 글
MIUI 12.5 후기 (redmi note 7) (0) | 2021.08.19 |
---|---|
WinUI 3 란 무엇일까? (리유니언 프로젝트 / Windows 앱 SDK ) (9) | 2021.06.28 |
KTm 알뜰 모바일 APN 설정(핫스팟) (9) | 2021.02.21 |
측지 좌표계, 세계 측지 좌표계란? (0) | 2021.02.01 |
벡터 좌표계 [직각 좌표계, 원주 좌표계, 구면 좌표계] 에 관하여 (0) | 2021.01.31 |