import torch
if torch.cuda.is_available():
device = torch.device('cuda')
print("Using GPU:", torch.cuda.get_device_name(0))
else:
device = torch.device('cpu')
print("Using CPU")
x = torch.randn(3, 3)
x = x.to(device)
print(x)
위에 코드를 사용해 보니까 'Using GPU: NVIDIA GeForce GTX 1660 Ti with Max-Q Design' 다음과 같이 gpu 사용이 되는것으로 나옵니다.
그런데 제가 테스트 해보고 싶은 코드에서는(아래 코드) gpu사용이 아닌 cpu사용으로 표기됩니다. (BLAS = 0)
어떤 부분을 확인 해야 되는지 문의 드립니다.
테스트 환경 : visual studio code
from llama_cpp import Llama
llm = Llama(model_path = 'llama-2-7b-chat.Q4_K_M.gguf',
n_ctx=512,
n_batch=512,
n_gpu_layers=60
)
output = llm("Q: 인생이란 뭘까요?. A: ", max_tokens=1024, stop=["Q:", "\n"], echo=True)
print( output['choices'][0]['text'].replace('▁',' ') )
아래 답변은 OpenAI의 GPT-3.5(ChatGPT) 모델로 자동 생성한 것으로, 정확하지 않을 수 있습니다.
잘못된 답변을 보셨다면 댓글로 첨삭 지도 부탁드립니다.
안녕하세요 kim_kim님,
문제를 이해하고 정리해보겠습니다. GPU를 사용하여 코드를 실행하려고 하지만, 특정 코드에서는 GPU 대신 CPU가 사용되는 것으로 나타납니다. GPU를 사용하는 방법을 확인하고 싶으신 것으로 이해하겠습니다.
문제를 해결하기 위한 해결책은 다음과 같습니다.
첫 번째 코드에서 GPU를 사용하는 방법을 확인합니다. 첫 번째 코드에서는 torch.cuda.is_available() 함수를 사용하여 GPU가 사용 가능한지 확인하고, torch.device('cuda')를 사용하여 GPU 장치를 설정한 후, x.to(device)를 사용하여 텐서를 GPU로 이동시킵니다. 이러한 방법을 사용하여 GPU를 사용할 수 있습니다.
두 번째 코드에서는 Llama 클래스를 사용하여 모델을 로드하고, llm 객체를 생성한 후, llm 객체를 사용하여 텍스트를 생성합니다. 이 코드에서는 GPU를 사용하는 방법이 명시되어 있지 않습니다. 따라서, Llama 클래스의 생성자에 device 매개변수를 추가하여 GPU를 사용하도록 설정해야 합니다. 예를 들어, device='cuda'와 같이 설정하면 GPU를 사용할 수 있습니다.
아래는 위의 해결책을 적용한 예시 코드입니다.
import torch
# 첫 번째 코드
if torch.cuda.is_available():
device = torch.device('cuda')
print("Using GPU:", torch.cuda.get_device_name(0))
else:
device = torch.device('cpu')
print("Using CPU")
x = torch.randn(3, 3)
x = x.to(device)
print(x)
# 두 번째 코드
from llama_cpp import Llama
llm = Llama(model_path='llama-2-7b-chat.Q4_K_M.gguf',
n_ctx=512,
n_batch=512,
n_gpu_layers=60,
device='cuda') # GPU 사용 설정
output = llm("Q: 인생이란 뭘까요?. A: ", max_tokens=1024, stop=["Q:", "\n"], echo=True)
print(output['choices'][0]['text'].replace('▁', ' '))
아래 답변은 OpenAI의 GPT-4 모델로 자동 생성한 것으로, 정확하지 않을 수 있습니다.
잘못된 답변을 보셨다면 댓글로 첨삭 지도 부탁드립니다.
안녕하세요, kim_kim님. GPU 사용에 관한 문제를 겪고 계신 것 같네요. 정리해보면, PyTorch에서는 GPU를 정상적으로 인식하고 사용하는 것으로 보이나, 특정 코드에서는 CPU를 사용하는 것으로 나타나는 문제를 겪고 계신 것으로 이해했습니다.
먼저, PyTorch에서 GPU를 사용하는 부분은 정상적으로 동작하는 것으로 보입니다. 그러나, 문제가 되는 코드에서는 llama_cpp 라이브러리를 사용하고 있는데, 이 라이브러리가 GPU를 사용하도록 설정되어 있는지 확인이 필요합니다.
llama_cpp 라이브러리의 경우, GPU를 사용하도록 설정하는 방법이 따로 있을 수 있습니다. 해당 라이브러리의 문서나 예제 코드를 참조하여 GPU 사용 설정 방법을 확인해보시는 것이 좋을 것 같습니다.
그런데, 만약 llama_cpp 라이브러리가 GPU를 지원하지 않는다면, 해당 라이브러리를 사용하는 코드는 CPU를 사용하게 될 것입니다. 이 경우, 해당 코드를 GPU를 사용하도록 변경하는 것은 어려울 수 있습니다.
또한, 'BLAS = 0'이라는 메시지는 BLAS 라이브러리가 CPU를 사용하도록 설정되어 있다는 것을 의미할 수 있습니다. BLAS 라이브러리는 선형 대수 연산을 위한 라이브러리로, CPU와 GPU 모두에서 사용할 수 있습니다. 따라서, BLAS 라이브러리가 GPU를 사용하도록 설정하는 방법을 찾아보시는 것도 하나의 방법일 수 있습니다.
이에 대한 자세한 내용은 PyTorch 공식 문서나 llama_cpp 라이브러리의 문서를 참조하시면 도움이 될 것입니다.