수치 컴퓨팅 및 GPU 프로그래밍 과제 4 공지 게시판입니다.
과제 4와 관련된 내용, 질문에 대한 답을 정리하여 업데이트 할 것입니다.
자세한 내용은 수업 시간에 나눠준 문서를 참조하시면 됩니다.
○제출 기한
-프로그램 부분 제출 기한 : 6/27(수) 오후 5시 정각
○제출 형식
-과제 제출 메일 : ajp5050@daum.net
-이메일 제목 : HW4_S[학번]_[이름]
ex) HW4_S320150054_안재풍
-파일 압축명 : HW4_S[학번]_[이름].zip
ex) HW4_S320150054_안재풍.zip
○채점 기준
1) 데이터
- 문서에 있는 조건에 맞도록 데이터를 생성하고 제출
- 데이터에 대해서는 Late를 받지 않음
2) 프로그램
- 목적과 요구사항에 맞도록 프로그램을 작성
- 프로그램에서 결과 값 자체를 틀리게 출력한다면 해당 부분 0점
- 채점 시 Release 모드로 컴파일하여 채점합니다. 해당 모드에서 컴파일 및 런타임 에러시 0점
- 채점 환경은 Visual Studio 2017을 기준으로 합니다.
- GPU를 사용할 수 있는 윈도우 환경이 없는 경우에 한해 cmake 빌드 시스템 사용을 허용합니다.
* 되도록이면 권장하지는 않습니다.
* cmake 툴을 사용하여 Visual studio 2017 솔루션 파일로 변형 후 채점하는 것을 기준으로 합니다.
* cmake 빌드 시스템을 사용 할 시, 보고서에 명시하여야 합니다.
* 변형된 프로젝트 파일은 위의 채점 기준을 따라야 하며, 변환된 프로젝트 파일에 이상이 있는 경우 불이익이 있을 수 있습니다.
--------------------------------------------------------------------------------------------------------------------------------
# 2018/06/20
- 프로그램 작성 시, Matrix 곱셈/덧셈 정도는 라이브러리를 사용해도 상관 없습니다.
다만, 라이브러리를 제출 시 포함해야 하며, 상대경로로 지정하여 사용해야 합니다.
예를 들면, $(SolutionDir)과 같은 매크로를 사용하여 상대경로로 라이브러리 경로를 지정할 수 있습니다.
- 제출 시, 여러개의 Solution 파일을 되도록 제출하지 마십시오.
제출한다면 어떤 코드를 채점해야 하는지 적어야 합니다.
예를 들면,
HW3_20******_***.zip
ㄴA_proj
ㄴmain.cpp
ㄴB_proj
ㄴmain.cpp
ㄴC_proj
ㄴmain.cpp
위와 같은 형태로 제출하면 어느 main.cpp를 채점해야 할지 모르기 때문에 아예 채점을 하지 않을 것입니다. (0점 처리)
- 코드 작성시, 코드를 변경하면서 수행해야 하는 경우엔 코드 상단에 전처리기(preprocessor)등을 사용하여 코드의 윗 부분에서 변경 가능하게 하십시오.
예를 들어,
main.cpp, 30번째 줄에서 CPU/GPU를 선택해주시고,
main.cpp, 180번째 줄에서 함수 종류를 선택해주시고,
main.cpp, 530번째 줄에서 Workgroup 크기를 바꿔주시고,
main.cpp, 830번째 줄에서 원하는 함수 주석을 해제해 주시고,
main.cpp, 1040번째 줄에서 그 함수내에서 원하는 값을 세팅해주시고
...
등을 하면 case 1이 수행됩니다.
와 같이 세팅하는 변수가 여기 저기 퍼져있거나, 주석을 알아서 해제해서 수행하라고 둔다면 해당 부분은 감점될 수 있습니다.
#if / #else / #endif / #ifdef 등을 사용한다면 여기저기 퍼져있는 세팅을 한 곳으로 모을 수 있을 것입니다.
예를 들어,
#define CPU 0
#define GPU 1
#define SELECT_DEVICE GPU
#if SELECT_DEVICE == GPU
// GPU 부분 수행
#endif
와 같은 형태로 사용 할 수 있습니다.
--------------------------------------------------------------------------------------------------------------------------------
3) 보고서
- 작성된 프로그램의 실행 결과를 분석
- 보고서에 실험환경을 기술
- 속도/정확성 측정 결과는 표나 그래프와 같은 형태로 나타내어 비교할 수 있도록 표시
- 속도/정확성 측정 결과가 실험한 결과처럼 나온 이유를 서술
- 이 또한 각 항목에 대하여 부분적으로 채점
4) 기타
- 채점은 보고서인 Readme 파일을 기준으로 채점, 미기재시 해당 부분을 채점하지 않을 수도 있음
- 파일 이름 및 메일 형식 오타 시 감점
- 구글 드라이브 등과 같은 클라우드 드라이브 링크는 받지 않습니다. (미제출 처리)
- 알집 사용으로 인해 압축이 깨진 상태로 전송하면 채점을 할 수가 없습니다. (미제출 처리)
- Copy의 경우 문서에 적힌대로 불이익이 있습니다.
○ 질문 및 답변
--------------------------------------------------------------------------------------------------------------------------------
# 2018/06/26 추가
Q : obj를 읽을 때 이전 컴파일러로 만들어졌다고 에러가 납니다.
A :
프로젝트 속성 -> 구성 속성 -> C/C++ -> 최적화에서
전체 프로그램 최적화를 '아니오'로 바꿔주면 됩니다.
Q : 구동하다가 에러가 납니다.
A :
fortan 문서를 읽고 특별한 문제가 없다면, ITOL을 1과 같은 값 으로 변경하여 수렴 조건을 완화하십시오.
Q : 데이터의 경로?
A :
프로젝트 파일이 있는 폴더(cpp 코드 있는 곳) 안에 data 폴더를 생성하고 거기에 데이터를 넣어주십시오.
--------------------------------------------------------------------------------------------------------------------------------
ChangeLog
----------------------------------------------------------------
# 2018/06/26
과제 질문 답변
----------------------------------------------------------------
# 2018/06/20
과제 제출 기한 일부 변경 및 제출 공지
----------------------------------------------------------------
# 2018/06/11
과제 시작 및 공지
----------------------------------------------------------------
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
» | 수치 컴퓨팅 및 GPU 프로그래밍 - 과제 4 (2018/06/26 18:30 수정) | grmanet | 2018.06.12 | 536 |
공지 | 수치 컴퓨팅 및 GPU 프로그래밍 - 과제 3 (2018/06/26 17:00 수정) | grmanet | 2018.06.04 | 538 |
공지 | 수치 컴퓨팅 및 GPU 프로그래밍 - 기말고사 | grmanet | 2018.06.04 | 252 |
공지 | 수치 컴퓨팅 및 GPU 프로그래밍 - 과제 2 (2018/05/19 21:30 수정) | grmanet | 2018.05.03 | 1130 |
공지 | 수치 컴퓨팅 및 GPU 프로그래밍 - 중간고사 | grmanet | 2018.04.09 | 345 |
공지 | 수치 컴퓨팅 및 GPU 프로그래밍 - 과제 1 (2018/04/12 19:50 수정) | grmanet | 2018.03.29 | 1741 |
공지 | 2018 1학기 수치 컴퓨팅 및 GPU 프로그래밍 게시판입니다. | grmanet | 2018.03.29 | 370 |
2 | OpenCL Workgroup 구성과 데이터 접근 (2018.04.12 16:40 수정) | grmanet | 2018.04.12 | 343 |
1 | OpenCL 코드 플랫폼 설정 방법 | grmanet | 2018.04.04 | 821 |