선생님 안녕하세요!
775
cuda 0번 강의를 보고 마음에 와닿아서
6개의 강의를 동시에 구매했어요!
제가 요즘 비전 프로그램을 개발 중인데 opencl을 이용하여 범용성 있게 프로그램을 구성하고 싶은데요.
혹시 opencl 강의도 찍어주시면 안될까요?
혹은 좋은 강의나 책이 시중에 이미 있다면 추천좀 부탁드려도 될까요? 구글에 너무 자료가 없어요...
SYCL 같은 경우는 MSVC와 호환도 안되구요..
답변 1
1
안녕하세요. 🌞
우선 좋은 평가를 해주셔서 감사합니다.
OpenCL 쪽이 생각보다 강의나 교재를 구하기 힘드실 겁니다.
다른 이유가 있는건 아니고, CUDA 보다 늦게 나왔고, CUDA 보다 효율이 떨어진다는 점이 강합니다.
특히, NVIDIA 칩들이 CUDA 에 최적화되어 있고, OpenCL 쪽은 성능이 좀 떨어지게 나온다는 벤치마크 결과들이 좀 있습니다.
그래서, PC 플랫폼이나, 모바일 쪽에서도 칩을 선택할 수 있는 경우라면,
아예 NVIDIA 칩으로 고정시키고, OpenCL 대신 CUDA 로 프로젝트를 진행하는 경우도 있습니다.
또하나, OpenCL 을 택하시는 이유 중에, CPU, GPU 양쪽 모두를 동시에 병렬처리 해서,
CPU, GPU 모두가 미친듯이 일하게 만들어서, 최고의 성능을 노리자는 경우가 있는데,
이쪽은 load-balancing 이 생각보다 까다롭습니다.
처리 시간이나, 양쪽의 결과를 서로 공유해야 하는 문제 등등을 겪다 보면,
결국은 그냥 GPU 에 몰아서 처리 시키고, 대신 최적화나 더 시키자는 식으로 가게 되고,
그러다 보면, 어차피 GPU만 쓸거면, 쓰기도 어렵고 최적화도 까다로운 OpenCL 보다는
CUDA 로 가는 경우들이 많습니다.
SYCL 쪽은 다 좋은데, 말씀하신 대로, 컴파일러 이슈가 있습니다.
SYCL 이 C++ 11 이후의 template 기능을 활발하게 쓰고, LLVM 구조의 컴파일러에 적합하게 되어 있는데,
MSVC 는 사실... 최적화나 template 이슈 측면에서는 그다지 좋은 컴파일러는 아닙니다.
최적화 이슈를 겪는 프로젝트 들에서, 굳이 MSVC 대신, 더 비싼 컴파일러를 사는게 이유가 있는 셈이지요. 🍺
OpenCL 쪽 커뮤니티가 진입 장벽이 있는 또하나의 이유는 CUDA 가 먼저 만들어져서 일 겁니다.
OpenCL 이 나중에 나오면서, 그 시점에는 OpenCL을 사용하려는 사람의 대부분은 이미 CUDA를 쓰고 있어서,
OpenCL 표준을 만들던 사람들이나, 튜토리얼 만드는 사람들도 은연 중에, CUDA는 이미 공부하고 왔을 거니까,
이 정도는 알겠지, 내지는, 이거는 CUDA 에서 이렇게 했던 거를 여기서는 이렇게 하는 거야, 라는 식으로,
CUDA 기준으로 설명을 하다 보니까, OpenCL 부터 공부하시는 분들은 진입 장벽을 좀 느끼실 겁니다. 🍺
그래서, 일단 CUDA 부터 공부하신 후에, OpenCL 로 전환하면
대응되는 개념들이 용어만 바꿔서 그대로 나오게 됩니다.
사실상 같은 구조에서 같은 병렬처리 개념을 쓰고 있으니까요.
OpenCL 은 10시간 정도 분량의 단기 강의를 해 본 적은 있습니다만,
지금의 CUDA 강의처럼, 30시간 정도 분량으로 길게 강의를 해 보지는 않아서,
당장 강의를 개설하기는 힘들 것 같습니다만, 시간이 되는 대로, OpenCL 강의도 만들어 보겠습니다.
다만, 선생님의 열의와 학습속도로 보아서는, 제가 강의를 완성하기 전에,
선생님께서 먼저 OpenCL 전문가가 되어 있으실 것 같습니다. 🌞
즐거운 하루 보내세요. 👍
학습법
0
34
1
정처기2회실기를 마치고.
0
70
0
코테 관련 질문
0
56
2
코테 준비 방법 문의
0
52
1
공부 시작..
0
43
1
방산 SW 개발자가 되기 위한 조언을 부탁드립니다!
1
179
1
고민이있습니다...!
0
153
1
FPS 서버 충돌 질문드립니다.
0
119
1
26년1회 실기 합격할수 있을까??ㅠㅠ
0
198
1
재귀함수 코드를 작성하는 단계가 어렵습니다.
0
237
0
계속 공부해도 되는지 모르겠습니다
0
452
3
진로가 큰 걱정입니다...
0
322
1





