I have been working on my final year project which is all about building a deep learning network for image super resolution. My images are multipage tiffs and thus I need to implement the torch.nn.Conv3d() method in PyTorch. I have a Mac M1 chip, the latest software and I have checked everything is as it should be but my code (that I run on Pycharm) keeps telling me that Conv3D is not supported by MPS (Metal Performance Shaders). The reason I want to use MPS is because I want to run my PyTorch CNN model on my gpu, running it on the cpu is not an option as it takes way too much time and I need to be able to debug and make changes to my model in a relative short period.
I have checked and my device is correct (shown as MPS in PyTorch code) and the code runs for conv2d. I have spent many days of research trying to solve this issue. However in the end I gave up and transferred all of my code to a Windows desktop. Now that I need to preprocess even higher resolution images, the Windows desktop does not support such operations as the RAM is simply too low. For this reason, I was wondering if anyone had found a solution to this issue (running conv3d with MPS shaders on a Mac M1 chip).
Solving this would literally help me progress much much much faster as it would prevent me from having to switch between my Mac (where I do the data pre-processing due to the high RAM) and my Windows desktop where I run the SRCNN (CNN) model as cuda does support torch.nn.conv3d.
A bit ironic that apple's new product cannot even support a functionality that older laptops / desktop chips can. M1 was supposed to be a "coding" powerhouse but clearly it has some very frustrating limitations.
If anyone has any solutions or ideas please let me know!