PytorchとOpenCLでのバグ
解決したいこと
PytorchとOpneCLでのバグが発生した。対処法はあるのかどうか。
(初めての質問投稿なので、至らないところがあればご指摘ください)
環境:
Windows11
Python 3.10.9
AMD Ryzen 7 4700U
発生している問題・エラー
return t.to(device, dtype if t.is_floating_point() or t.is_complex() else None, non_blocking)
RuntimeError: 0 INTERNAL ASSERT FAILED at "..\\c10/core/TensorOptions.h":659, please report a bug to PyTorch. This is a grandfathered Caffe2 device type opencl, it shouldn't ever convert to a DispatchKey. File a bug describing what you were doing if you think this is in error.
該当するソースコード
import pyopencl as cl
"""AlexNet"""
class AlexNet(object):
"""コンストラクタ"""
def __init__(self, mode=False, model_path=''):
# OpenCLの初期化
platform = cl.get_platforms()[0]
devices = platform.get_devices(device_type=cl.device_type.GPU)
device = devices[0] # 最初のデバイスを使用する場合
context = cl.Context([device])
queue = cl.CommandQueue(context)
# OpenCLデバイスからPyTorchのデバイスオブジェクトに変換
torch_device = torch.device("opencl:0") # インデックスを0に指定
# モデル定義
self.__model = Model().to(torch_device)
自分で試したこと
# デバイス設定 GPU or CPU
self.__device="cuda" if torch.cuda.is_available() else "cpu"
# モデル定義
self.__model=Model().to(self.__device)
元々、インターネットにあったALexNetのソースを実行したかったが、搭載されているGPUがAMDのものの為、CPUとなってしまい、動かなかった。
そこで、chatGPTに質問したところOpenCLが使えると返ってきたため、言う通りに実装してみたが、動かなかった。
AMDのGPUでも多少快適に機械学習が回せれば方法は問わないので、どなたかご教授ください。<(-_-)>