inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Lập trình CUDA (3) - C/C++/Tính toán song song trên GPU - Cấu trúc bộ nhớ

18-F đóng cửa - đóng cửa

video에 필터를 적용하는 경우

Đã giải quyết

375

superdy

3 câu hỏi đã được viết

0

- 출장이 잦아서, 답변에 시간이 좀 걸릴 수도 있습니다. 양해 바랍니다.

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

선생님 너무 좋은 강의 다시 한번 감사드립니다. 다름이 아니고, video에서 각각의 frame별로 filter를 처리하는 부분을 cuda도 구현하는 코드를 짠다고 가정할 때, 각 프레임은 W x H x C ( rbg) 의 차원을 가지고 있고 영상이기 때문에 영상은 W x H x C x T 의 차원을 가지고 있을 겁니다. 그렇다면, cudaMalloc3D나 cudaMemecpy3D 부분을 사용해서 각 frame을 처리하고 ( device ) 나머지는 for 문 ( host ) 으로 시간에 따라 frame을 device로 보내도록 구현하였습니다. 그런데 혹시 시간 부분 까지 device에서 처리할 수 있는 방법이 있는 지가 궁금합니다.

c c++ cuda gpu 병렬-처리

Câu trả lời 1

1

onemoresipofcoffee

안녕하세요.

이미지 처리, 비디오 처리 분야도 CUDA 에서 많이 다루는 문제입니다.

보통, cudaMalloc3D( ) 로 메모리 영역을 잡게 될 것인데, 말씀하신대로, W x H x C x T 까지 고려하면, 4개의 차원이 되어서, 좀 애매한 상황이 생길 수 있습니다.

제가 많이 사용하는 방법은, pixel 당 RGBA 로, 4바이트 integer 를 할당하면, 0xRRGGBBAA 또는 0xAABBGGRR 형태로 저장될 겁니다.

이렇게 하면, data type 을 바이트가 아니라, 4 바이트 integer 로 바꾸면서, C 차원을 생략해도 되어서,

W x H 짜리 2차원 이미지로 되고, T 차원까지 고려하면, 3차원이 되어서, cudaMalloc3D( ) 로 메모리 관리가 가능할 것입니다.

픽셀마다의 access 패턴으로 보아도, 이쪽이 속도가 빠를 겁니다.

RGB 만 쓰더라도, A에 해당하는 1 바이트를 버려도, integer 단위로 자료를 주고 받는게 빠르다는 점을 고려해야 할 겁니다.

감사합니다.🍀

재귀함수 연산법

0

11

2

3-F 채점 관련 질문

0

4

0

BFS, DFS 활용이 되는 상황에서의 방향성

0

8

2

코딩살구클럽 승인

0

15

2

코딩살구클럽승인

0

13

2

리눅스로 진행해도 될까요?

0

21

2

코딩살구클럽 승인

0

43

2

3-D 관련 질문

0

33

2

코살구 회원가입 문의

0

38

2

코살구 로그인 문제

0

60

2

26년 1회차 기출 강의

0

55

2

3-A 문제 풀이 관련 질문

0

51

3

2-O 질문 있습니다

0

38

2

2-T 문제에 관한 질문

0

38

2

코딩 살구 클럽 접속 및 사용방법 문의

0

57

2

기출문제

0

55

1

안녕하세요~. 현재 코살코딩클럽 사이트가 접속이 안됩니다~

0

64

2

코딩살구클럽 로그인문제

0

74

3

정보처리기사 실기 zip

0

44

2

데이터베이스 노션

0

38

2

본 강의와는 상관없는 내용입니다만..

0

35

1

pitch값에 따른 alignement boundary(size) 질문

0

182

2

[Matrix Addition Problem] 1D를 사용하지 않는 이유가 뭔가요?

0

226

1

계산시간 비교

1

382

2