고성능파이썬
-
고성능 파이썬 Chapter 09 - Multiprocessing 모듈 part 2 (9.5절~)STUDY/고성능 파이썬 2025. 1. 19. 18:34
9.5절 부터의 내용은 생성된 프로세스간의 통신을 하는 내용이다.원하는 값을 찾는걸 다른 프로세스에서 끝냈다면, 더 진행할 일이 없을텐데 다른 프로세스의 진행 상황을 알지 못하고 수행한다면 모든 프로세스가 종료 되어야 비로소 프로그램이 종료되게 되기 때문이다.프로세스간의 통신으로 인한 오버헤드 또한 고려사항이다. 오히려 오버헤드가 많아지면서 더 느려지는 상황이 생길 수 있다. 이 책에서 제안하는 방식은MPI(via MPI4PY, 책에서 다루지는 않음), pool 사용, flag 사용, redis, Raw Value, mmap을 이용한 방법이다.또한 위의 방식들은 단순히 flag 값만을 주고 받았는데numpy 배열 전체를 프로세스간 공유하여 메모리를 효율적으로 이용하는 방법에 대해서도 다룬다. (np.fr..
-
고성능 파이썬 Chapter 06 - 행렬과 벡터 계산STUDY/고성능 파이썬 2024. 12. 14. 17:36
들어가며인공지능의 연산이 기본적으로 행렬 연산이기 때문에 python을 처음 접할때부터 별 생각 없이 사용했던 numpy 모듈에 대한 이야기가 나온다. numpy는 cpu에서 수행하도록 설계되어 있는데, 요즘은 jax라는 라이브러리에서 gpu를 이용한 행렬 연산을 numpy와 비슷한 문법으로 쓸 수 있게 해주어서 관심을 가지고 보고 있다.이 장에서 배울 내용- 벡터 연산 병목 지점의 위치- 계산 과정 중에 CPU를 효율적으로 사용하는지 알아볼 수 있는 도구- 산술 계산에서 numpy가 순수 파이썬보다 더 빠른 이유- 코드 내에서 메모리 할당을 추적하는 법이번 챕터에서 최적화 할 코드는 확산 방정식이다. 요즘 생성형 AI에서 많이 사용되는 바로 그 diffusion의 forward path이다.해당 함수를..