Are the New M1 Macbooks Any Good for Deep Learning? Let’s Find Out

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • tensorflow_macos

    Discontinued TensorFlow for macOS 11.0+ accelerated using Apple's ML Compute framework.

  • Just tried out apples native tensorflow for M1 branch yesterday: https://github.com/apple/tensorflow_macos

    installation was a non-issue, The training kept the Mac mini completely silent, having 40% of colab gpu speed is very satisfying for small tests.

    pytorch on the other hand is not ready yet (there are installation instructions but they didn't work)

  • RAFT

  • https://github.com/princeton-vl/RAFT#optional-efficent-imple...

    It's "optional" in the sense that things still calculate correctly on CPU without it, but at a 1000x performance penalty. Or you could skip it if you had 64GB of GPU RAM, which you cannot buy (yet).

    So if you actually want to work with this on GPUs that are commercially available, you need it.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • ROCm

    Discontinued AMD ROCm™ Software - GitHub Home [Moved to: https://github.com/ROCm/ROCm]

  • Which AMD cards though? It's one thing to be able to buy AMD hardware for your data center or workstations, but as far as I can see their latest consumer platform RDNA2 doesn't support ROCm [0]. Radeon DNA doesn't support Radeon Open Compute. ROCm have never supported Windows, and it doesn't look like there are any future plans for it either. And when looking at which AMD cards support SPIR or SPIR-V I can't find any good list, but I do find issues where AMD removed support in the drivers and told people to use old drivers if they needed it [1]. Compare to Nvidia where you can use any Geforce card you can find, so if you have a Nvidia GPU you know Cuda will work.

    If you control your own hardware and software stack maybe an AMD CDNA card is fine, but if you want to ship software to end users it seems to be difficult to even know what will work. So you use cross platform code for a worse experience on Nvidia and spotty support on AMD, or only Cuda and accept that it's Nvidia only but will give you a better experience.

    I haven't done a lot of GPGPU programming, but I've tried to look at it from time to time, and I've been disheartened by it every time. Nvidia's handling of OpenCL, AMD's disregard for SPIR. This is what an AMD representative had to say in 2019 [2]:

    "For intermediate language, we are currently focusing on direct-to-ISA compilation w/o an intervening IR - it's just LLVMIR to GCN ISA. [...] Future work could include SPIRV support if we address other markets but not currently in the plans."

    [0] https://github.com/RadeonOpenCompute/ROCm/issues/1180#issuec...

    [1] https://community.amd.com/t5/opencl/spir-support-in-new-driv...

    [2] https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/iss...

  • pointnet2

    PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space

  • Pointnet_Pointnet2_pytorch

    PointNet and PointNet++ implemented by pytorch (pure python) and on ModelNet, ShapeNet and S3DIS.

  • Here you go: https://github.com/yanx27/Pointnet_Pointnet2_pytorch - no need for any custom cuda code.

    Note the cuda kernels in the original repo were added in August 2017. It might have been the case at the time they needed them, but again, if you need to do something like that today, you're probably an outlier. Modern DL library have a pretty vast assortment of ops. There have been a few cases in the last couple of years when I thought I'd need write a custom op in cuda (e.g. np.unpackbits) but every time I found a way to implement it with native Pytorch ops.

    If you're doing DL/CV research, can you give an example from your own work where you really need to run custom cuda code today?

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts