Skip to content
Snippets Groups Projects
Select Git revision
  • 07e78223e3326f985b46a2cafa59292d92fb1383
  • main default protected
2 results

logmap

Jayesh Badwaik's avatar
Jayesh Badwaik authored
07e78223
History
Name Last commit Last update
readme.md

logmap - a microbenchmark with controllable arithmetic intensity

A logistic map is a simple mathematical model that exhibits chaotic behavior. This repository contains a microbenchmark that is based on the logistic map that can be controlled to have a desired arbitrary workload and desired arbitrary arithmetic intensity.

The microbenchmark works by iterating each element of an array of floating-point numbers x of size N using the logistic map formula for a specified number of iterations niter. The logistic map formula is given by:

xi,n+1=rxi,n(1xi,n)x_{i, n+1} = r * x_{i,n} * (1 - x_{i,n})

where

ii
is the index of the element in the array and
n
is the iteration number. The value of r is a constant that determines the behavior of the logistic map. The value of r is selected to be within the range [3.5, 4.0] to ensure that the logistic map exhibits chaotic behavior. The chaotic nature of the logistic map ensures that the benchmark hardware is not susceptible to effects of input-dependent power consumption.

The arithmetic intensity of the benchmark is directly proportional to the number of iterations niter and independent of the size of the array N and can be written as

AI = k_i * niter

where k_i is the arithmetic intensity for a single iteration of the logistic map for a single input. The workload of the benchmark is directly proportional to the size of the array N and directly proportional to the number of iterations niter and can be written as

W = k_w * N * niter

where k_w is the floating-point operations per element of the array x for a single iteration of the logistic map.