nanoBench | running small microbenchmarks on recent Intel | Performance Testing library

 by   andreas-abel Python Version: Current License: AGPL-3.0

kandi X-RAY | nanoBench Summary

kandi X-RAY | nanoBench Summary

nanoBench is a Python library typically used in Testing, Performance Testing applications. nanoBench has no vulnerabilities, it has a Strong Copyleft License and it has low support. However nanoBench has 2 bugs and it build file is not available. You can download it from GitHub.

nanoBench is a Linux-based tool for running small microbenchmarks on recent Intel and AMD x86 CPUs. The microbenchmarks are evaluated using hardware performance counters. The reading of the performance counters is implemented in a way that incurs only minimal overhead. There are two variants of the tool: A user-space implementation and a kernel module. The kernel module makes it possible to benchmark privileged instructions, to use uncore performance counters, and it can allow for more accurate measurement results as it disables interrupts and preemptions during measurements. The disadvantage of the kernel module compared to the user-space variant is that it is quite risky to allow arbitrary code to be executed in kernel space. Therefore, the kernel module should not be used on a production system. nanoBench is used for running the microbenchmarks for obtaining the latency, throughput, and port usage data that is available on uops.info.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              nanoBench has a low active ecosystem.
              It has 205 star(s) with 37 fork(s). There are 17 watchers for this library.
              OutlinedDot
              It had no major release in the last 6 months.
              There are 1 open issues and 13 have been closed. On average issues are closed in 98 days. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of nanoBench is current.

            kandi-Quality Quality

              nanoBench has 2 bugs (0 blocker, 0 critical, 2 major, 0 minor) and 1377 code smells.

            kandi-Security Security

              nanoBench has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              nanoBench code analysis shows 0 unresolved vulnerabilities.
              There are 62 security hotspots that need review.

            kandi-License License

              nanoBench is licensed under the AGPL-3.0 License. This license is Strong Copyleft.
              Strong Copyleft licenses enforce sharing, and you can use them when creating open source projects.

            kandi-Reuse Reuse

              nanoBench releases are not available. You will need to build from source code and install.
              nanoBench has no build file. You will be need to create the build yourself to build the component from source.
              Installation instructions are not available. Examples and code snippets are available.
              nanoBench saves you 2504 person hours of effort in developing the same functionality from scratch.
              It has 5448 lines of code, 168 functions and 21 files.
              It has high code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi has reviewed nanoBench and discovered the below as its top functions. This is intended to give you an instant insight into nanoBench implemented functionality, and help decide if they suit your requirements.
            • Run the program .
            • Returns a list of LatConfigLists .
            • Get the latency of the given instruction .
            • Get the list of divor configs .
            • Get the throughput of each instruction .
            • Return all instructions that are not supported .
            • Get information about a CPU
            • Construct an instruction instance from an instruction node .
            • Get TPConfig for division .
            • Extract the basic latencies from each instruction .
            Get all kandi verified functions for this library.

            nanoBench Key Features

            No Key Features are available at this moment for nanoBench.

            nanoBench Examples and Code Snippets

            No Code Snippets are available at this moment for nanoBench.

            Community Discussions

            Trending Discussions on nanoBench

            QUESTION

            Why is POP slow when using register R12?
            Asked 2020-Nov-12 at 01:52

            On recent Intel CPUs, the POP instruction usually has a throughput of 2 instructions per cycle. However, when using register R12 (or RSP, which has the same encoding except for the prefix), the throughput drops to 1 per cycle if the instructions go through the legacy decoders (the throughput stays at around 2 per cycle if the µops come from the DSB).

            This can be reproduced using nanoBench as follows:

            ...

            ANSWER

            Answered 2020-Nov-12 at 01:52

            Workaround: the pop r/m64 encoding of pop r12 doesn't have this decode penalty. (Thanks @Andreas for testing my guess.)

            Source https://stackoverflow.com/questions/64791977

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install nanoBench

            You can download it from GitHub.
            You can use nanoBench like any standard Python library. You will need to make sure that you have a development environment consisting of a Python distribution including header files, a compiler, pip, and git installed. Make sure that your pip, setuptools, and wheel are up to date. When using pip it is generally recommended to install packages in a virtual environment to avoid changes to the system.

            Support

            nanoBench should work with all Intel processors supporting architectural performance monitoring version ≥ 2, as well as with AMD Family 17h processors. The code was developed and tested using Ubuntu 18.04.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/andreas-abel/nanoBench.git

          • CLI

            gh repo clone andreas-abel/nanoBench

          • sshUrl

            git@github.com:andreas-abel/nanoBench.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link