cf. CUDA C++ Programming Guide / §16. Compute Capabilities / §16.2. Features and Technical Specifications
| GPU | Result file | Provider | Date |
cf. CUDA C++ Programming Guide / §16. Compute Capabilities / §16.2. Features and Technical Specifications
| GPU | Result file | Provider | Date |
#include <bit> | |
#include <random> | |
#include <benchmark/benchmark.h> | |
template <class Generator> static void BM_random(benchmark::State &state) { | |
Generator gen; | |
for (auto _ : state) | |
benchmark::DoNotOptimize(gen()); |
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg | |
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh | |
"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi | |
#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij | |
$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk | |
%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl | |
&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm | |
'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn | |
()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno | |
)*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop |
$ c++ rump.cpp -lmpfi -lmpfr -lgmp | |
$ for prec in 1 10 20 30 31 32 33 34 35 36 37 38 39 40; do ./a.out $prec; done | |
prec = 1: {-5.48801451098564180059512748897e+36,8.80613556589959273415384575891e+36} | |
prec = 10: {-719561148094296450146500608,1425281040027303069683286016} | |
prec = 20: {-108086391056891902.82763671875,144115188075855873.1728515625} | |
prec = 30: {-4194302.82739605994683529388567,4194305.17260394005319312782376} | |
prec = 31: {-524286.827396059946822859387794,524289.172603940053178916969046} | |
prec = 32: {-32766.8273960599468214160978619,1.17260394005317863186453174879} | |
prec = 33: {-4094.82739605994682137446449843,1.17260394005317863186453174879} | |
prec = 34: {-510.827396059946821369260328005,1.17260394005317863186453174879} |
#!/usr/bin/env python3 | |
import numpy as np | |
# Assume that P = N * N. | |
N = 4 | |
A = np.arange(0, 2 * N * N, 2).reshape(N, N) | |
B = np.arange(1, 2 * N * N, 2).reshape(N, N) | |
C_gt = A.dot(B) |
#include <iostream> | |
#include <gmp.h> | |
#include <gmpxx.h> | |
#include <omp.h> | |
int main(int argc, char *argv[]) | |
{ | |
if (argc != 1 + 2) { | |
std::cerr << "Specify a and b for comb(a, b)\n"; | |
return 1; |