Apple Announces macOS Sierra: Siri, Better iOS Convergence, New Metal Features, & Moreby Ryan Smith on June 14, 2016 10:00 AM EST
On a bit of an aside, I want to briefly talk about the new Photos application that’s being rolled out to both macOS Sierra and iOS 10. Apple has announced that Photos is receiving a major feature update here, incorporating a new slew of functionality based on facial recognition and analysis of the photos in a library. The idea behind the feature is to allow photos to be easy collated – find all of the pictures featuring a specific person or shots of a mountain, for example – and then present that to the user or do other neat things with the collection.
Truth be told the presentation behind the new Photos application was a bit cringe-worthy (Apple’s still trying to figure out what you can do with image analysis that’s not a gimmick), however I think it’s notable because of the underlying technology. Apple is using GPU-accelerated computer vision here, and while they’re not the first party to do so, this is the most significant use of GPU compute we’ve seen from Apple to date.
Apple’s interest to GPU compute goes back to the creation of OpenCL in 2009, and the company has gone as far to implement two GPUs on their Mac Pro lineup so that the second GPU can be dedicated to compute tasks. With that said, thus far Apple’s use of GPU compute has been more along the lines of faster implementations of graphical features (e.g. composting and effects) than it has been true compute. Consequently, utilizing the GPU for computer vision marks the first major use of GPU compute in a first party Apple application beyond simply accelerating photo and video processing.
To be clear it won’t turn the world upside down, but I’ve been waiting to see Apple make better use of GPU compute, and now it appears the time has come. Interestingly this is happening with both the Mac and iOS devices; even the latter mobile devices will be using GPU compute for local image processing. Local processing allows them to play up the privacy aspects – this information never leaves the local system – but I think it will also be interesting if this makes Macs with faster GPUs more relevant for desktop (non-gaming/non-pro) workloads, as currently macOS itself isn’t pushing the latest generation GPUs too hard.
Under The Hood
Less visible to users but equally important are the under the hood changes coming to macOS, which Apple ever so briefly mentioned in their presentation and posted more about on their developer website. Overall macOS Sierra is bringing features that will impact developers and end-users alike.
On the API side of matters, Apple’s Metal graphics API is receiving a major update with Sierra. A new GPU family is being introduced (OSX_GPUFamily1_v2), which enables a bunch of new features on the latest macOS. Of particular interest here is geometry tessellation, which has been present in all Macs since 2012, but has not been exposed in Metal until now. Notably, Apple calls Metal’s tessellation feature a “flexible compute-based approach” which is a bit confusing since it can be construed multiple ways. However Apple’s documentation confirms that this is a traditional tessellation pipeline, using a combination of a fixed function tessellator and compute-based hull/domain/vertex shading. Though outside the scope of this article, tessellation is also being brought to the latest generation iOS devices under iOS 10, so developers should be able to hit the ground running with tessellation.
Apple is also expanding macOS’s wide color gamut support. The company already ships a Mac with a DCI-P3 display, the 2015 5K iMac, so it’s not immediately clear what these changes fully entail. But overall Apple says they’re bringing substantially improved wide gamut support to Metal, Core Image, Core Graphics, and other frameworks. This includes a number of new features in multiple APIs, including color conversion functions and new FP16 pixel formats for Metal.
The Swift programming language is also receiving an update with Swift 3. After expanding Swift’s overall functionality with 2, Swift 3 marks a further divergence between it and Objective-C. For the latest Swift, Apple is doing away with some of the OS’s oldest cruft, the NeXTSTEP-inherited class and API names, replacing them with more straightforward syntax.
// old code (Swift 2.2) let content = text.stringByTrimmingCharactersInSet(NSCharacterSet.newlineCharacterSet()) // new code (Swift 3.0) let content2 = text.trimmingCharacters(in: .newlines)
This is a change that will break source-level stability, and is why Apple will be rolling out both Swift 3 and Swift 2.3, the latter of which ports over some of Swift 3’s other features while maintaining the current syntax. However with that said, Apple has stated that this should be the last major syntax change for Swift, and that Swift 3 is being designed with source-level stability moving forward.
Finally, while it’s still a work in progress, Apple has announced that they are developing a new file system that will be making at least a preview appearance in macOS Sierra. Dubbed the Apple File System (APFS), the new file system is a replacement for the long in the tooth HFS+, which in turn can be traced back to HFS, which was first introduced in 1985. Apple has extended HFS+ over the years, adding functionality such as Filevault and Time Machine on top of it, but HFS+ is definitely showing its age and is due for a wholesale replacement.
APFS in turn sees Apple implement a far more modern storage system. In terms of design it seems to take a page from other modern file systems such as ReFS and ZFS, implementing copy-on-write functionality, paired with other features such as native snapshots, native sparse files, and native encryption (the latter of these having to be built on top of HFS+). Comparatively speaking, both ZFS and ReFS are storage-focused file systems – used for storing data as opposed to operating systems – so it’s interesting that Apple is intending to use it across all of their devices. Though this may have something to do with the fact that they’re engineering APFS to be optimized for flash-backed storage first and foremost.
Ultimately I expect that APFS is going to significantly change how Time Machine works, and for the better, as the combination of sparse files, snapshots, and copy-on-write/cloning features all play well to that. At the same time Apple’s developer site notes that the old Apple Filing Protocol (AFP), required for networked Time Machine shares, is depreciated and cannot be used with APFS, so once Time Machine is reworked for APFS, expect it to be a particularly major reworking.
Expect to see APFS some time in 2017, after macOS Sierra ships. Unlike other forms of feature development, file system development is traditionally taken very cautiously – the failure mode is significant data loss – so this is something Apple will want to thoroughly vet before releasing it for production use.
Release Date & Hardware Support
Finally, along with the technical details, Apple has also announced the release process for macOS Sierra, and what hardware will be supported. The release timeline will be very similar to El Capitan last year; the developer beta is out now, and a public beta will start in July. A full, final release will then be in the fall.
As for hardware, macOS Sierra will be bumping up the hardware requirements for the first time in a couple of generations. The new minimum hardware for the OS will be a mix of late-2009 and 2010 Mac models; most 2008 and 2009 models are getting dropped. There doesn’t appear to be any single factor separating supported systems from unsupported systems – so why the line is drawn at late 2009 I’m not sure – but we may yet hear more about the matter as it gets closer to release.
|macOS Sierra Supported Hardware|
|Minimum Model Supported|