Create_async와 queue 사용 시 추론이 끝난 후에 cpu가 여전히 높은 이슈 문의

안녕하세요.

쿠버네티스 상에서 furiosa sdk를 활용하여 추론서버를 배포한 상태에서 요청이 끝난뒤에도 cpu점유율이 유지되는 상황인데, 요청을 보내지 않을 때는 대기상태에서는 1000에서 100미만까지 cpu를 낮추고 싶은 상황입니다.


image

코드의 골조는 다음과 같습니다.

submitter, queue = furiosa.runtime.session.create_async(os.path.join(path_training, './weight.enf'),
                                                    worker_num=2,
                                                    # Determine how many asynchronous requests you can submit
                                                    # without blocking.
                                                    input_queue_size=100,
                                                    output_queue_size=100)
idx = random.randint(0, 59999)
self.submitter.submit(img, context=idx)
context, outputs = self.queue.recv(1000)

create_asnyc, queue를 활용하는 것이 아닌 sync형태로 돌릴 경우 추론요청이 끝나면 cpu가 낮아지는데, 위의 코드 골조에서는 첨부이미지처럼 cpu가 1000이상으로 유지가됩니다.

queue를 with로(with self.queue) 구현시에 추론이 끝나면 cpu가 낮아지긴하지만, 두번째 요청 이후로는 runtime.FuriosaRuntimeError: session has been already terminated
에러가 발생합니다. 유추하기로는 queue부분에서 루프 최적화가 안되서 cpu가 높게 유지되는 것 같긴한데, 대기상태에서 100미만으로 낮출 수 있는 방법이 있을까요?

1 Like

안녕하세요 FuriosaAI 정영범입니다.
문제 공유해주셔서 감사합니다. 저희가 공유주신 이슈의 재현에 성공했습니다.
원인과 해결 방법을 찾는대로 공유 드리겠습니다.
설 연휴 잘 보내세요~

1 Like

안녕하세요
감사합니다 혹시 업데이트된 내용이 있을까요?

넵 SDK 수정이 필요한거라 시간이 걸리고 있습니다. 다음주에 업데이트 드리겠습니다.

1 Like

안녕하세요
혹시 진행된 내용이 있을까요?

넵 해결 방법은 구현했습니다. 테스트하고 패키징하는 시간이 필요하지만 다음주 중으로는 꼭 배포 드릴 예정입니다. 감사합니다.

2 Likes

안녕하세요, FuriosaAI 김종욱입니다.

해당 이슈를 해결한 Python 패키지를 별도로 전달드리려고 계획중이며, 이를 위해 사용하고 계시는 파이썬 버전을 공유해주실 수 있으신지 문의드립니다.

1 Like

안녕하세요
현재 python 3.8.12 사용중입니다.

감사합니다.

죄송합니다 착오가 있었습니다.
python3.8.12는 호스트서버이고 현재 가상환경에서 사용하는건
python 3.9.18입니다. 3.9.18로 부탁드립니다.

감사합니다.

메일로 해결 방법 전달 드리겠습니다. 감사합니다.

안녕하세요

테스트 해보겠습니다.
감사드립니다.

안녕하세요
테스트를 통해 cpu점유율이 내려감을 확인했습니다.
감사합니다. :grinning:

3 Likes