라이프게임 토러스의 라이프 게임을 List Zipper를 사용하여 구현했습니다. 이 기사는, 「 」로 언급되고 있는 「토러스상의 List Zipper」를 구현해 보았습니다, 라고 하는 기사입니다. Comonad로 구현한 List Zipper를 사용하여 라이프 게임을 구현했으며 메모리 사용량이 증가하지 않는 것을 확인했습니다. 토러스상(2차원)의 List Zipper를 생각하기 전에, 링상(1차원)의 List Zipper를 생각해 봅시다. 직선의 List Zipper를 사... 라이프게임하스켈 라이프 게임을 OpenMP, CUDA로 구현했을 때의 벤치 마크 라이프 게임을 C++, OpenMP, CUDA를 사용하여 구현했을 때의 벤치마크입니다. 그리기 위해 OpenGL을 사용했습니다. 참고로 JavaScript를 사용했을 때의 수치도 실려 있습니다만, 알고리즘이 다르므로 참고 정도입니다. 메모리 배치 (pinned memory) Shared Memory Stream (파이프 라인 화) 메모리 복사 횟수 감소 Core i7-6400 @3.4GHz ... C++알고리즘CUDA라이프게임OpenMP
토러스의 라이프 게임을 List Zipper를 사용하여 구현했습니다. 이 기사는, 「 」로 언급되고 있는 「토러스상의 List Zipper」를 구현해 보았습니다, 라고 하는 기사입니다. Comonad로 구현한 List Zipper를 사용하여 라이프 게임을 구현했으며 메모리 사용량이 증가하지 않는 것을 확인했습니다. 토러스상(2차원)의 List Zipper를 생각하기 전에, 링상(1차원)의 List Zipper를 생각해 봅시다. 직선의 List Zipper를 사... 라이프게임하스켈 라이프 게임을 OpenMP, CUDA로 구현했을 때의 벤치 마크 라이프 게임을 C++, OpenMP, CUDA를 사용하여 구현했을 때의 벤치마크입니다. 그리기 위해 OpenGL을 사용했습니다. 참고로 JavaScript를 사용했을 때의 수치도 실려 있습니다만, 알고리즘이 다르므로 참고 정도입니다. 메모리 배치 (pinned memory) Shared Memory Stream (파이프 라인 화) 메모리 복사 횟수 감소 Core i7-6400 @3.4GHz ... C++알고리즘CUDA라이프게임OpenMP