Language Selection

English French German Italian Portuguese Spanish

Graphics/Benchmarks

Firefox vs. Chrome Browser Performance On Intel Ice Lake + Power/Memory Usage Tests

Filed under
Graphics/Benchmarks

Using Firefox 70 (including WebRender) and Google Chrome 78, here are our latest round of Linux web browser benchmarks tested on the Dell XPS Ice Lake laptop. Making this round of Linux browser benchmarking more interesting is also including power consumption and RAM usage metrics for the different browser benchmarks.

For those wondering about whether Firefox or Chrome makes the most sense for Linux laptops, these benchmarks from the Dell XPS with Intel Core i7-1065G7 will hopefully be useful.

Ubuntu 19.10 with the Linux 5.3 kernel was running on this Intel Ice Lake laptop while using the official builds of Mozilla Firefox 70.0 (both out of the box and with WebRender) and Google Chrome 78. The AC system power consumption was monitored on battery and the total RAM usage was being monitored throughout testing as well. All of the benchmarking was carried out using the Phoronix Test Suite.

Read more

Linux and Graphics: Kernel Headers, Linux 5.5, NUVIA and Wayland

Filed under
Graphics/Benchmarks
Linux
  • What's a kernel headers package anyway

    I've written before about what goes into Fedora's kernel-devel package. Briefly, it consists of files that come out of the kernel's build process that are needed to build kernel modules.

    In contrast to kernel-devel, the headers package is for userspace programs. This package provides #defines and structure definitions for use by userspace programs to be compatible with the kernel. The system libc comes with a set of headers for platform independent libc purposes (think printf and the like) whereas the kernel headers are more focused on providing for the kernel API. There's often some overlap for things like system calls which are tied to both the libc and the kernel. Sometimes the decision to support them in one place vs the other comes down to developer choices.

    While the in-kernel API is not guaranteed to be stable, the userspace API must not be broken. There was an effort a few years ago to have a strict split between headers that are part of the userspace API and those that are for in-kernel use only.

    Unlike how kernel-devel gets packaged, there are proper make targets to generate the kernel-headers (thankfully). make headers_install will take care of all the magic. These headers get installed under /usr/include

  • Linux 5.5 To Finally Kill The Async Block Cipher API In Favor Of SKCIPHER

    The crypto code within the Linux kernel for the upcoming 5.5 cycle finishes converting the drivers to making full use of the four-year-old SKCIPHER interface so that the old ABLKCIPHER code can be removed.

    SKCIPHER was introduced in 2015 to the mainline kernel to ultimately replace BLKCIPHER/ABLKCIPHER. This "symmetric key cipher" interface is a generic encrypt/decrypt wrapper for ciphers.

  • NUVIA To Make Serious Play For New CPUs In The Datacenter, Hires Linux/OSS Veteran

    Making waves this afternoon is word of the NUVIA server CPU start-up landing its series A funding round and thus making more information known on this new silicon start-up.

  • WXRC Is The Wayland XR Compositor For VR Headsets

    Drew DeVault of Sway/WL-ROOTS notoriety and longtime Wayland developer Simon Ser have started development on WXRC, a new Wayland compositor.

    WXRC is the Wayland XR Compositor and is based on OpenXR and the open-source Monado implementation. This is better than the past Linux VR desktop efforts we've recently seen that relied on SteamVR. As of this week, WXRC has working 3D Wayland clients.

OnLogic Karbon 700: Passively-Cooled, Up To 8 Core / 16 Thread Industrial & Rugged PC

Filed under
Graphics/Benchmarks

OnLogic (formerly known as Logic Supply until a recent rebranding) announced the Karbon 700 back in August as a durable Linux-friendly computer largely intended for industrial applications but nothing prevents the user from using it as a passively, well-built desktop PC either. OnLogic recently sent over the Karbon 700 and it's been working out very well even with passively cooling an Intel Xeon eight-core / sixteen-thread processor, 16GB of RAM, 512GB NVMe storage, and more.

In suiting the Karbon 700 for industrial applications, this high-performance rugged computer supports power over Ethernet (PoE), wireless, the ability to have an external graphics card (though that variant is no longer fanless), CAN bus support, dual COM RS-232, 8-bit DIO, and other interfaces in addition to triple Gigabit LAN, triple DisplayPort, USB 3.1 Gen 1, and other connectivity options.

Read more

Graphics: Intel, D9VK, NVIDIA

Filed under
Graphics/Benchmarks

Zombieload V2 TAA Performance Impact Benchmarks On Cascade Lake

Filed under
Graphics/Benchmarks

While this week we have posted a number of benchmarks on the JCC Erratum and its CPU microcode workaround that introduces new possible performance hits, also being announced this week as part of Intel's security disclosures was "Zombieload Variant Two" as the TSX Async Abort vulnerability that received same-day Linux kernel mitigations. I've been benchmarking the TAA mitigations to the Linux kernel since the moment they hit the public Git tree and here are those initial benchmark results on an Intel Cascade Lake server.

Read more

mesa 19.2.4

Filed under
Graphics/Benchmarks
Linux

Hi list,

I'd like to announce mesa-19.2.4, which is available immediately. This is an
emergency release, to fix a critical bug found in the 19.2.3 release which
causes incomplete rendering on all mesa drivers. This release contains a single
patch to fix that bug, anyone using 19.2.3 should immediately upgrade to 19.2.4
or downgrade to 19.2.2.

Dylan

Read more

Also: Mesa 19.2.4 Released As Emergency Update After 19.2.3 Broke All OpenGL Drivers

NVIDIA 435.27.06 Vulkan Linux Driver

Filed under
Graphics/Benchmarks
Linux
  • NVIDIA 435.27.06 Vulkan Linux Driver Has Useful Display Improvements

    Released on Wednesday was the NVIDIA 435.27.06 Linux driver as their newest beta build focused on offering better Vulkan driver support.

    While the NVIDIA 435.27.06 driver doesn't offer any new Vulkan extensions or landmark new features, it does offer some practical improvements. Catching our eye in particular is the better fullscreen exclusive support handling for non-primary monitors and better G-SYNC support for borderless windows. The other fixes are also quite useful too.

  • NVIDIA 435.27.06 Vulkan Beta driver is out

    If you like to live on the wild side, NVIDIA yesterday released a brand new update to their Vulkan Beta driver series with version 435.27.06.

The Firefox + Chrome Web Browser Performance Impact From Intel's JCC Erratum Microcode Update

Filed under
Graphics/Benchmarks

With yesterday's overview and benchmarks of Intel's Jump Conditional Code Erratum one of the areas where the performance impact of the updated CPU microcode exceeding Intel's 0~4% guidance was on the web browser performance. Now with more time having passed, here are more web browser benchmarks on both Chrome and Firefox while comparing the new CPU microcode release for the JCC Erratum compared to the previous release. Simply moving to this new CPU microcode does represent a significant hit to the web browser performance.

In this article is just a look at how the updated CPU microcode for the JCC Erratum affects the Mozilla Firefox and Google Chrome web browser performance. This article isn't looking at any impact from the also new Zombieload TAA mitigation (that's coming in a separate article shortly) or anything else but simply benchmarking both of these web browsers with the old and new CPU microcode on a Skylake-X system.

Read more

Graphics: Adreno, Vulkan, Khronos, and Radeon Pro Software for Enterprise

Filed under
Graphics/Benchmarks
  • Qualcomm's Adreno 640 GPU Is Working Easily With The Freedreno OpenGL/Vulkan Drivers

    The Adreno 640 GPU that is used by Qualcomm's Snapdragon 855/855+ SoCs is now working with the open-source Freedreno Gallium3D OpenGL and "TURNIP" Vulkan drivers with the newest Mesa 20.0 development code.

    Besides the forthcoming Adreno 680/685 GPUs for Snapdragon-powered Windows laptops, the Adreno 640 is at the top of the Adreno 600 series line-up. The Adreno 640 is 7nm based and has more ALUs than the Adreno 630 and older, an 899~1037 GFLOPS rating, and other improvements.

  • Intel's Vulkan Linux Driver Lands Timeline Semaphore Support

    A change to look forward to with Mesa 20.0 due out next quarter is Vulkan timeline semaphore support (VK_KHR_timeline_semaphore) for Intel's "ANV" open-source driver.

    Vulkan timeline semaphore support is the latest synchronization model for the Vulkan graphics API and building upon earlier primitives. The Vulkan Timeline Semaphore extends VkSemaphore and supports signal/wait from host threads, better platform support, a monotonically increasing counter than can be used for more descriptive purposes, and other design improvements.

  • Khronos Next Pursuing An Analytic Rendering API

    The Khronos Group has been expanding into a lot of new areas in recent times from OpenXR to 3D Commerce to NNEF and now forming an exploratory group for creating an analytic rendering API.

    The Khronos Analytic Rendering API would be an industry standard API around data visualizations. This API would be a step above graphics APIs like Vulkan and be catered to data presentation purposes. The API has yet to be formalized as it's still in the early stages but would likely be akin to a vendor-neutral equivalent of NVIDIA VisRTX or Intel OSPray.

  • Radeon Pro Software for Enterprise 19.Q4 for Linux Released

    AMD on Tuesday released their Radeon Pro Software for Enterprise 19.Q4 for Linux package as their newest quarterly driver release intended for their professional graphics card offerings.

    Radeon Pro Software for Enterprise 19.Q4 for Linux is arriving as scheduled and continues to provide both the AMDGPU-PRO and AMDGPU-Open driver stacks depending upon your preferences.

Benchmarks Of JCC Erratum: A New Intel CPU Bug With Performance Implications On Skylake Through Cascade Lake

Filed under
Graphics/Benchmarks

Intel is today making public the Jump Conditional Code (JCC) erratum. This is a bug involving the CPU's Decoded ICache where on Skylake and derived CPUs where unpredictable behavior could happen when jump instructions cross cache lines. Unfortunately addressing this error in software comes with a performance penalty but ultimately Intel engineers are working to offset that through a toolchain update. Here are the exclusive benchmarks out today of the JCC erratum performance impact as well as when trying to recover that performance through the updated GNU Assembler.

The microcode update prevents jump instructions from being cached in the Decoded Icache when those instructions cross a 32-byte boundary or where they end on a 32-bit boundary. Due to that change there will be more misses from the Decoded ICache and switches back to the legacy decode pipeline -- resulting in a new performance penalty. The Decoded ICache / Decoded Streaming Buffer has been around since Sandy Bridge but only Skylake and newer is affected by this erratum. Cascade Lake is affected by this erratum but Ice Lake and future iterations appears unaffected. The erratum notice officially lists Amber Lake, Cascade Lake, Coffee Lake, Comet Lake, Kaby Lake, Skylake, and Whiskey Lake as affected generations for the JCC bug.

Read more

Syndicate content

More in Tux Machines

Open source radio system delivers emergency alerts and music to the Yukon and beyond

"Radio Rob" Hopkins lives in Tagish, Yukon, 120km south of the capital city, Whitehorse. It is here that he created Open Broadcaster, an open source system that enables small rural market radio stations to manage their operations and volunteers. Having lived in the Yukon for 35 years, back when there was no phone or internet, Rob got into communications to set up a low-power FM (LPFM) station for the community. He wanted to make it easier to manage stations, so he made a pitch to the Yukon government for seed money to develop an application to use the internet to run a radio station and deliver the last mile through FM radio. Read more

PCLinuxOS Gets November 2019 ISO with Refreshed Themes, Latest Updates

The PCLinuxOS community released their monthly ISO snapshots for November 2019, a release that contains all the latest bug and security updates, as well as various improvements. PCLinuxOS 2019.11 is out now as the latest and most up to date installation medium for this independently developed and user-friendly GNU/Linux distribution, including a fully updated system with all the updates released as of November 12th, 2019, with refreshed themes for GRUB, bootsplash, and the desktop. PCLinuxOS 2019.11 is available in there different edition, with the KDE Plasma 5, Xfce, and MATE desktop environments. The PCLinuxOS 2019.11 KDE edition ships with the latest KDE Plasma 5.17.3 desktop environment, as well as the KDE Applications 19.08.3 and KDE Frameworks 5.64.0 open-source software suites. Read more

Programming: GCC, RcppEigen and Python

  • Introduce a new GCC option, --record-gcc-command-line
    I would like to propose the following patches which introduce a compile option --record-gcc-command-line. When passed to gcc, it saves the command line option into the produced object file. The option makes it trivial to trace back how a file was compiled and by which version of the gcc. It helps with debugging, reproducing bugs and repeating the build process.
    
    This option is similar to -frecord-gcc-switches. However, they have three fundamental differences: Firstly, -frecord-gcc-switches saves the internal state after the argv is processed and passed by the driver. As opposed to that, --record-gcc-command-line saves the command-line as received by the driver. Secondly, -frecord-gcc-switches saves the switches as separate entries into a mergeable string section. Therefore, the entries belonging to different object files get mixed up after being linked. The new --record-gcc-command-line, on the other hand, creates one entry per invocation. By doing so, it makes it clear which options were used together in a single gcc invocation. Lastly, --record-gcc-command-line also adds the version of the gcc into this single entry to make it clear which version of gcc was called with any given command line. This is useful in cases where .comment section reports multiple versions.
    
    While there are also similarities between the implementations of these two options, they are completely independent. These commands can be used separately or together without issues. I used the same section that -frecord-gcc-switches uses on purpose. I could not use the name -frecord-gcc-command-line for this option; because of a {f*} in the specs, which forwards all options starting with -f to cc1/cc1plus as is. This is not we want for this option. We would like to append it a filename as well to pass the argv of the driver to child processes.
    
    This functionality operates as the following: It saves gcc's argv into a temporary file, and passes --record-gcc-command-line <tempfilename> to cc1 or cc1plus. The functionality of the backend is implemented via a hook. This patch includes an example implementation of the hook for elf targets: elf_record_gcc_command_line function. This function reads the given file and writes gcc's version and the command line into a mergeable string section, .GCC.command.line.
    
    
  • GCC Developers Discuss New Option For Recording Compiler Flags / Details In Binaries

    GCC developers recently have been discussing a new proposal over an option for preserving the command-line flags/options used when building a binary as well as the associated compiler version. The proposal sent out last week was over a --record-gcc-command-line option to save the compiler options into the produced object file. The proposal is in the name of helping debugging, reproducing bugs, and repeating build process. There is already a -frecord-gcc-switches option that is somewhat similar in behavior but with key differences as explained in the proposal.

  • RcppEigen 0.3.3.7.0

    A new minor release 0.3.3.7.0 of RcppEigen arrived on CRAN today (and just went to Debian too) bringing support for Eigen 3.3.7 to R. This release comes almost a year after the previous minor release 0.3.3.5.0. Besides the upgrade to the new upstream version, it brings a few accumulated polishes to the some helper and setup functions, and switches to the very nice tinytest package for unit tests; see below for the full list. As before, we carry a few required changes to Eigen in a diff.

  • “Higher Performance Python” at PyDataCambridge 2019

    I’ve had the pleasure of speaking at the first PyDataCambridge conference (2019), this is the second PyData conference in the UK after PyDataLondon (which colleagues and I co-founded 6 years back). I’m super proud to see PyData spread to 6 regional meetups and now 2 UK conferences.

today's howtos