안녕하세요. 유튜버 코드깎는노인입니다.

ChatGPT에는 코드인터프리터라는 멋진 기능이 있습니다.


기존의 GPT-4 default 에서는 코딩만 해줄 수 있었다면, 코드인터프리터에서는 AI에 의해 작성된 코드를 대화세션마다 할당된 컴퓨터에서 실제 실행까지 할수 있는 환경이 갖춰지게됐죠.

코드인터프리터에서는 기본적으로 AI는 파이썬 코드를 작성하고 실행해줍니다.

그런데 때로는 큰 연산작업이 필요할 수도 있는데요, 연산량이 커질수록 파이썬코드의 수행속도는 늦어지게되지요.

코드인터프리터는 확인해본 바로 코드의 수행시간이 너무 길어져 60초를 넘어가게되면 timeout되어 종료되버립니다.

따라서 이럴때 처리속도를 압도적으로 향상시켜서 빠르게 처리할 수 있는 방법을 이야기드리고자합니다.


기본적인 아이디어는 파이썬은 느리니 씨언어를 사용하자입니다.

코드인터프리터에 할당되는 컴퓨터에는 gcc가 내장되어있습니다.

다음과 같이 확인해볼 수 있지요.

aaa.jpg

gcc는 C언어로 작성된 소스코드를 실행가능한 형태의 실행파일로 만들어주는 역할을 하는 프로그램입니다.


그래서 C언어와 파이썬으로 각각 1백만번의 연산을 했을때 각각에서 얼마나걸리는지를 비교해보는 미션을 수행해달라고 요청해보도록 하겠습니다. 이 과정에서 코드인터프리터는 씨언어로 코드를 작성하고 gcc로 컴파일하여 실행하게됩니다.

aaa1.jpg

aaa2.jpg

이렇게해서 subprocess를 통해 gcc를 실행하여 컴파일하고 컴파일된 실행파일을 마찬가지로 subprocess를 통해서 실행하는 방법으로 씨언어로 작성된 코드를 실행할 수 있습니다.

1백만번의 반복은 씨언어로 할때에는 0초에 수렴하는 수행시간이 측정되었습니다.


다음은 파이썬으로의 구현입니다.

aaa3.jpg

씨언어로 수행했을때의 시간이 0초라서 비교가 어려우니 1백만번이 아닌 1억번으로 반복량을 늘려서 다시 테스트해보겠습니다

aaa4.jpg

이번엔 씨언어로 1억번 반복에 0.21초가 걸렸습니다.

aaa5.jpg

파이썬의 경우는 11.8초가 걸렸습니다.

이는 56배의 차이입니다.

그런데 참고할 것은 이 결과를 통해 씨언어는 파이썬보다 56배빠르다고 생각할 수는 없습니다.

무엇을 하느냐에 따라서 이 차이는 좁혀질수도 있고 늘어날 수도 있기 때문입니다.

만약 하고자하는 작업의 연산량이 많아서 파이썬으로는 너무 느릴 경우 이와 같은 방법으로 처리를 씨언어로 하도록 해서

더욱 빠르게 효과적으로 해낼 수 있을것으로 기대됩니다.

감사합니다.