본문 바로가기

카테고리 없음

[인공지능] Cupy를 이용해서 Numpy연산 gpu가속하기

https://towardsdatascience.com/heres-how-to-use-cupy-to-make-numpy-700x-faster-4b920dda1f56

 

Here’s how to use CuPy to make Numpy 700X faster

It’s time for some GPU power!

towardsdatascience.com

 

colab에서 cupy를 설치하려고 하는데 설치완료가 되지 않고 계속 진행중인 상태다... 왜?

cupy가 이미 설치되어  있었다 ㅋㅋ..

 

단순히 matrix를 생성하는 연산도 cupy가 더 빠르다.  --> 왜지?

 

 

상수를 곱셈하는 연산도 더 빠르다. 

 

 

매트릭스의 곱 , 덧셈 연산도 더 빠르다.

 

그럼 이제 해커톤 문제에 적용해보자  cupy로 가속화 시켜보자.

colab gpu환경에서 2코어 cpu로만 수행한 결과 . 1epoch당 약 4분 이상의 시간이 소요되었다.

 

내 gram에서는 1epoch에 8코어로 2분 37초가 걸렸다.

numpy를 cupy로 변경하였다

무엇이 문제일까?

multiprocessing을 적용하지 말아보자.

 

이 그지같은 결과는 뭐지?

멀티프로세싱을 하지 않겠다고, 스코어 계산하는 부분을 전체 주석처리 해버렸으니 이런 결과가 나온것이다. 

바꿔야 할 부분이 많다. simulator도 바꿔야한다.

 

다음과 같이 에러가 떠서 

int(np.argmax(net)) 으로 바꿔주었다.

 

역시 그냥 되는법이 없다. 또 에러가 떴다.

        out2 = int(out2) / 2 

이렇게 바꿔주니까 해결 완료.

 

 

cupy적용해서 돌려보니..너무 오래 걸리는데.. 왜그런걸까... 6분 4초나 걸리네..그리고 스코어도 너무 높다. 원래 1 epoch이자면 이것의 절반정도 인데

 

1core로 numpy를 사용했을때 5분정도 걸린다. 

cupy로 gpu가속화를 했는데 어떻게 시간이 더걸릴 수가 있는거지? 참담한 결과이다.

 

유전알고리즘이기때문에 그런것인가?