Photos

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
iMac Late 2009
MacBook Late 2009
MacBook Pro 2010
MacBook Air 2010
Mac Mini 2010
Mac Pro 2010
macOS Sierra: New Features
POST A COMMENT

32 Comments

View All Comments

  • Eden-K121D - Wednesday, June 15, 2016 - link

    *there Reply
  • Impulses - Thursday, June 23, 2016 - link

    Billy for GPU reviewer!

    You can now expect poor Billy to cringe in the background while recoiling with a sense of dread...
    Reply
  • hechacker1 - Wednesday, June 15, 2016 - link

    The thing is that NTFS and HFS+ have been iterated upon in each new release, there's just not a lot of news about it since they still maintain backwards compatibility.

    ReFS is interesting (I use it in my NAS), but until server 2016 it's still very limited in its use since it doesn't support many needed features that people depend on without knowing it.

    HFS+ is due to be thrown out though. It's just based on such old architecture I'm afraid no amount of tweaks can fix it for modern systems.

    I just wish Apple didn't go off an reinvent the wheel again in file systems. Linux has so many GPL'd and modern filesystems to choose from that do everything APFS hopes to do, and they are already tested and compatible with linux, and android, and even Windows in some cases.

    Apple really doesn't like the GPL I guess. Even though all they would have to release is the changes they made to the GPL'd code and the interfaces with their kernel.

    They could go steal UFS from BSD which has a more permissive license.
    Reply
  • jameskatt - Friday, June 24, 2016 - link

    Apple - like any successful company or wealthy person - wants to control its own destiny. You cannot do that if you do not own the technology involved.

    Just look at how successful Android phone makers and Windows PC makers are compared to Apple. They hardly make any profit compared to Apple. That is because they are totally dependent on another company for their future.

    Apple has many utilities which are GPL licensed. But it uses such code only if it makes sense to itself.

    When it comes to the file system, Apple does not have to be compatible with Linus, Windows and Android. It would be laughable to demand Apple do so.

    GPL'd and other modern file systems do not obviously give Apple what it needs for its users.

    For example, Apple's file systems traditionally made heavy use of metadata that is accessible to users which are missing in competing file systems. For example, to this day, Windows doesn't allow you to give colored labels or tags to files. Colored labels and tags are so convenient for organization on Macs that using a Windows PC is primitive in comparison.

    Apple's new file system also makes heavy use of encryption - more so than current file systems.

    Apple also emphasizes user privacy more than any other major company. So its products have this aspect built in mind compared to competing products.
    Reply
  • tipoo - Wednesday, June 15, 2016 - link

    Regarding dropped support, What does a 2009 Macbook do better than a 2009 Mac Pro? Sometimes I wish Apple would better explain their thought processes behind these decisions.

    There were specific limits before like 32 bit UEFI or 32 bit graphics drivers, but what causes the cull this time? I guess few could complain about a 7 year support life, but considering that Windows 10 will chug along happily on an Athlon XP, if the user is patient enough...

    Anyways, the Apple File System is the most exciting thing for me here, 1 second polling is an eternity with SSDs performing tens of thousands of IOPs or processors screaming away at billions of cycles per second, very much made for very old spinny disks, not even our modern still crappy spinny disks. NTFS was at least shoved forward more, with 100ns timestamps for instance.
    Reply
  • halcyon - Wednesday, June 15, 2016 - link

    @tipoo
    Tipoo: "Sometimes I wish Apple would better explain their thought processes behind these decisions."

    Revenue and sales control. They do statistical analysis on upgrade cycles and force people to upgrade.

    Sometimes the demarcation line between what to and not to support is clearly based on HW (RAM, CPU speed, etc).

    Very often it is not.

    And I agree, the file system (if it actually delivers on NVME PCIe SSDs the speed promised) is at least something very useful that everybody will be able to take advantage of (if they can upgrade).
    Reply
  • Focher - Friday, June 17, 2016 - link

    Nope. The CPU is missing support for a function that's now relied upon. Reply
  • jameskatt - Friday, June 24, 2016 - link

    Apple doesn't force people to upgrade. As a matter of fact, Apple devices have a much longer lifetime than competing devices. And Apple supports older hardware far longer than its competitors.

    Apple does upgrade its devices to make them even better and more lust worthy. And it is consumer lust and prestige that drives Apple sales.

    Apple users lust after the best. So if a better product comes along, they will upgrade. They won't complain because they are wealthy enough or save enough to buy Apple products in the first place.

    Those who complain should never buy an Apple product. They would complain about the $500 minimum repair and maintenance bills from Mercedes Benz or the $30,000 oil change on an Aston Martin. If you have to look at the price, you cannot afford it.
    Reply
  • Murloc - Wednesday, June 15, 2016 - link

    *deprecated not depreciated Reply
  • name99 - Wednesday, June 15, 2016 - link

    "Though still distinct OSes, Apple has been slowly bringing over more and more iOS functionality to macOS over the years either for feature parity or interacting with iDevices, and macOS Sierra follows this trend."

    This totally misunderstands the situation.

    At the macro level Apple has a single OS-proper, on top of which it has four UIs (and thus four sets of programming frameworks). The four UIs differ because they target very different user input devices and display devices; but they try to be as common as possible within the constraints of those differences. So there's an attempt at common visual design elements, common control behavior, common defaults. This is the case even when it is not obvious --- the watch and the iPhone look like they have different UI elements, but in fact for the most part clicking the crown (or double clicking or holding it down) behave like the home button on an iPhone --- the crown is like a home button with a wheel attached.

    But they're not slaves to that. The side button on the watch is somewhat analogous to the power button (eg long press switches the device off, held down with the crown it performs a screen capture), but it was overloaded to handle Apple Pay (and soon to handle the dock) in a way that has no iPhone analog, because this divergence made sense for the watch.

    So first: one OS, four UIs (each as similar as possible to the others, but no more so).

    Second, as far as the APIs/frameworks are concerned, there's been (and will continue to be) elements of history and hardware performance that limit quite how closely they can converge. iOS began as a more modern set of UI frameworks, and various aspects of this more modern behavior have been backported to macOS. But iOS also began as a stripped down version of the macOS APIs because of limited hardware, and over time the need for this stripped down nature has dramatically diminished. So things like OpenCL/Core Image functionality have moved out to iOS, along with Color Sync, and an ever more powerful Spotlight each iOS release. I expect we will see the same evolution over the next ten years as parts of iOS move down to WatchOS.

    Point is, to characterize this as iOS functionality moving to MacOS is incorrect. There is substantial two-way traffic between the two OSs, both for historical reasons, and because some things naturally are best debuted on one platform vs the other (eg it made far more sense to debut Apple Pay on the phone). Most of the very newest stuff debuts on both platforms (and as tvOS gets up to speed, probably all three platforms) simultaneously, with any delays primarily the result of time factors (ie the lead team, for whatever reason, prototypes and debugs on ioS or macOS, and can't get the port on the other OS fully debugged in time for a particular release). WatchOS for obvious reasons will lag in its own way, while also, perhaps, serving as a site for debuting some new programming models that can be tried with less backward compatibility concerns.
    Reply

Log in

Don't have an account? Sign up now