When IBM choose the Intel processor as the core of its newly
introduced PC (Personal Computer), it forced Intel to allow at last
one more company to produce Intel-compatible processors to ensure
supply of these chips in the case one vendor have some manufacturing
problems. AMD become the second source of x86 CPUs, which now dominate
servers, workstations and personal computers (or by other words all
computers used for something more useful than posting selfies ;). Both
companies have their ups and downs during the long history of x86
architecture evolution (e.g. the 64-bit version of Intel x86
architecture was developed and introduced by AMD), but in the recent
years AMD was suffering from introduction of underdog x86
Bulldozer implementation and Intel Core CPUs run
much faster while consuming much less energy and generating much less
heat. But AMD did not surrender and built a new Zen
architecture x86 CPUs, which are sold under the Ryzen brand and which
almost leveled the technology with Intel. What is important, AMD is
asking less money for Ryzen, so their CPUs are more affordable.
But there is a catch. The 8-core Ryzen CPU in fact consists of two
4-core units on the single piece of silicon. Each 4-core unit has its
own caches and share memory bus with a second 4-core unit. Any
software, trying to utilize all available cores without the overhead
of keeping cache content synchronized, must take this into account
(this is the reason why the Ryzen performance is sometimes stellar and
sometimes so low).
When we run SIPS v3.4 on Ryzen R7 1700X for the first time, we were
badly disappointed. The standard test Photometry batch, processing
approximately 7 GB of raw images, run 34%
longer of this new 8-core CPU compared to 4th generation
Intel Core i7 4771 with only 4 cores. Some parts of the test run much
faster on Ryzen, but the most computing intensive part needed 50%
longer time, which caused the whole test was slower. Obviously the
SIPS v3.4 thread arrangement did not fit Ryzen two computing clusters
well.
Chart comparing SIPS v3.4 and v3.4.1 execution time of the
test Photometry batch on AMD Ryzen and Intel Core CPUs
It was soon obvious how to rearrange the SIPS threading
architecture not to block execution by unnecessary cache conflicts and
the result was surprising again, this time the surprise was very
positive. R7 1700X went through the test batch two times faster the
i7 4771, which is after all expectable because the IPC and clock rate
of both CPUs are similar, only the number of cores is two times
higher.
The SIPS version 3.4.1 (with a little exaggeration called the
Ryzen update :) is available for download. Note that the code
rearrangement affected also Intel processors — the Photometry batch test runs almost 7% faster, which
is always welcomed. But for everybody, who updated to AMD Ryzen, the
version 3.4.1 is a mandatory update.
SIPS is a freeware and can be downloaded from the Download section of this web site.
|