e7546b201a
* silence SFINAE disabled for fork_gotcha
* Python updates
- Options for --{module,function}-include
- libpyomnitrace is_initialized and is_finalized
- source instrumentation auto init
- atexit finalization
- improved python testing
* Documentation Update
* Fix to 'cmake -E cat' not available < cmake v3.18
* Fix for inverse tests
* Update cancelling.yml
[ROCm/rocprofiler-systems commit: 593b3b69b8]
37 строки
681 B
Python
Исполняемый файл
37 строки
681 B
Python
Исполняемый файл
#!@PYTHON_EXECUTABLE@
|
|
|
|
import sys
|
|
import numpy as np
|
|
import omnitrace
|
|
|
|
def fib(n):
|
|
return n if n < 2 else (fib(n - 1) + fib(n - 2))
|
|
|
|
|
|
def inefficient(n):
|
|
print(f"inefficient: {n}")
|
|
a = 0
|
|
for i in range(n):
|
|
a += i
|
|
for j in range(n):
|
|
a += j
|
|
arr = np.random.rand(a * n * n * n)
|
|
sum = arr.sum()
|
|
print(f"sum: {sum}")
|
|
return sum
|
|
|
|
|
|
@omnitrace.profile()
|
|
def run(nfib):
|
|
ret = 0
|
|
ret += fib(nfib)
|
|
ret += inefficient(nfib)
|
|
return ret
|
|
|
|
|
|
if __name__ == "__main__":
|
|
nfib = int(sys.argv[1]) if len(sys.argv) > 1 else 20
|
|
for i in range(5):
|
|
ans = run(nfib)
|
|
print(f"[{i}] fibonacci({nfib}) = {ans}")
|