SPEC(R) CPU2017 Floating Point Rate Result Huawei KunLun 9016 (Intel Xeon E7-8890 v4) CPU2017 License: 3175 Test date: May-2018 Test sponsor: Huawei Hardware availability: Mar-2018 Tested by: Huawei Software availability: Mar-2018 Base Base Base Peak Peak Peak Benchmarks Copies Run Time Rate Copies Run Time Rate --------------- ------- --------- --------- ------- --------- --------- 503.bwaves_r 768 3510 2190 S 503.bwaves_r 768 3506 2200 * 503.bwaves_r 768 3501 2200 S 507.cactuBSSN_r 768 1015 958 * 507.cactuBSSN_r 768 1001 971 S 507.cactuBSSN_r 768 1021 952 S 508.namd_r 768 683 1070 * 508.namd_r 768 679 1070 S 508.namd_r 768 686 1060 S 510.parest_r 768 3688 545 S 510.parest_r 768 3665 548 * 510.parest_r 768 3645 551 S 511.povray_r 768 1086 1650 S 511.povray_r 768 1091 1640 S 511.povray_r 768 1088 1650 * 519.lbm_r 768 1504 538 S 519.lbm_r 768 1510 536 S 519.lbm_r 768 1505 538 * 521.wrf_r 768 1780 966 S 521.wrf_r 768 1795 958 S 521.wrf_r 768 1786 963 * 526.blender_r 768 822 1420 S 526.blender_r 768 817 1430 * 526.blender_r 768 808 1450 S 527.cam4_r 768 1063 1260 S 527.cam4_r 768 1085 1240 S 527.cam4_r 768 1073 1250 * 538.imagick_r 768 811 2360 S 538.imagick_r 768 813 2350 * 538.imagick_r 768 815 2340 S 544.nab_r 768 656 1970 S 544.nab_r 768 656 1970 * 544.nab_r 768 659 1960 S 549.fotonik3d_r 768 4160 720 * 549.fotonik3d_r 768 4144 722 S 549.fotonik3d_r 768 4163 719 S 554.roms_r 768 2727 447 S 554.roms_r 768 2751 444 S 554.roms_r 768 2740 445 * ================================================================================= 503.bwaves_r 768 3506 2200 * 507.cactuBSSN_r 768 1015 958 * 508.namd_r 768 683 1070 * 510.parest_r 768 3665 548 * 511.povray_r 768 1088 1650 * 519.lbm_r 768 1505 538 * 521.wrf_r 768 1786 963 * 526.blender_r 768 817 1430 * 527.cam4_r 768 1073 1250 * 538.imagick_r 768 813 2350 * 544.nab_r 768 656 1970 * 549.fotonik3d_r 768 4160 720 * 554.roms_r 768 2740 445 * SPECrate2017_fp_base 1080 SPECrate2017_fp_peak Not Run HARDWARE -------- CPU Name: Intel Xeon E7-8890 v4 Max MHz.: 3400 Nominal: 2200 Enabled: 384 cores, 16 chips, 2 threads/core Orderable: 4,8 chips Cache L1: 32 KB I + 32 KB D on chip per core L2: 256 KB I+D on chip per core L3: 60 MB I+D on chip per chip Other: None Memory: 4 TB (128 x 32 GB 2Rx4 PC4-2400T-R, running at 1333) Storage: 3 x 900 GB SAS HDD 10K RPM, RAID 0 Other: None SOFTWARE -------- OS: SUSE Linux Enterprise Server 12 SP2 4.4.120-92.70-default Compiler: C/C++: Version 18.0.0.128 of Intel C/C++ Compiler for Linux; Fortran: Version 18.0.0.128 of Intel Fortran Compiler for Linux Parallel: No Firmware: Version BLXSV320 released Feb-2018 File System: ext4 System State: Run level 5 (multi-user) Base Pointers: 64-bit Peak Pointers: Not Applicable Other: None Submit Notes ------------ The numactl mechanism was used to bind copies to processors. The config file option 'submit' was used to generate numactl commands to bind each copy to a specific processor. For details, please see the config file. Operating System Notes ---------------------- Stack size set to unlimited using "ulimit -s unlimited" Numa balancing was disabled using "echo 0 > /proc/sys/kernel/numa_balancing" General Notes ------------- Environment variables set by runcpu before the start of the run: LD_LIBRARY_PATH = "/home/cpu2017/lib/ia32:/home/cpu2017/lib/intel64:/home/cpu2017/je5.0.1-32:/home/cpu2017/je5.0.1-64" Binaries compiled on a system with 1x Intel Core i7-4790 CPU + 32GB RAM memory using Redhat Enterprise Linux 7.4 Transparent Huge Pages enabled by default Prior to runcpu invocation Filesystem page cache synced and cleared with: sync; echo 3> /proc/sys/vm/drop_caches runcpu command invoked through numactl i.e.: numactl --interleave=all runcpu Yes: The test sponsor attests, as of date of publication, that CVE-2017-5754 (Meltdown) is mitigated in the system as tested and documented. Yes: The test sponsor attests, as of date of publication, that CVE-2017-5753 (Spectre variant 1) is mitigated in the system as tested and documented. Yes: The test sponsor attests, as of date of publication, that CVE-2017-5715 (Spectre variant 2) is mitigated in the system as tested and documented. Platform Notes -------------- BIOS configuration: Set Power Efficiency Mode to Performance Memory Patrol Scrub set to Disable Sysinfo program /home/cpu2017/bin/sysinfo Rev: r5797 of 2017-06-14 96c45e4568ad54c135fd618bcc091c0f running on linux-i5c0 Fri Jun 29 05:36:56 2018 SUT (System Under Test) info as seen by some common utilities. For more information on this section, see https://www.spec.org/cpu2017/Docs/config.html#sysinfo From /proc/cpuinfo model name : Intel(R) Xeon(R) CPU E7-8890 v4 @ 2.20GHz 16 "physical id"s (chips) 768 "processors" cores, siblings (Caution: counting these is hw and system dependent. The following excerpts from /proc/cpuinfo might not be reliable. Use with caution.) cpu cores : 24 siblings : 48 physical 0: cores 0 1 2 3 4 5 8 9 10 11 12 13 16 17 18 19 20 21 24 25 26 27 28 29 physical 1: cores 0 1 2 3 4 5 8 9 10 11 12 13 16 17 18 19 20 21 24 25 26 27 28 29 physical 2: cores 0 1 2 3 4 5 8 9 10 11 12 13 16 17 18 19 20 21 24 25 26 27 28 29 physical 3: cores 0 1 2 3 4 5 8 9 10 11 12 13 16 17 18 19 20 21 24 25 26 27 28 29 physical 4: cores 0 1 2 3 4 5 8 9 10 11 12 13 16 17 18 19 20 21 24 25 26 27 28 29 physical 5: cores 0 1 2 3 4 5 8 9 10 11 12 13 16 17 18 19 20 21 24 25 26 27 28 29 physical 6: cores 0 1 2 3 4 5 8 9 10 11 12 13 16 17 18 19 20 21 24 25 26 27 28 29 physical 7: cores 0 1 2 3 4 5 8 9 10 11 12 13 16 17 18 19 20 21 24 25 26 27 28 29 physical 8: cores 0 1 2 3 4 5 8 9 10 11 12 13 16 17 18 19 20 21 24 25 26 27 28 29 physical 9: cores 0 1 2 3 4 5 8 9 10 11 12 13 16 17 18 19 20 21 24 25 26 27 28 29 physical 10: cores 0 1 2 3 4 5 8 9 10 11 12 13 16 17 18 19 20 21 24 25 26 27 28 29 physical 11: cores 0 1 2 3 4 5 8 9 10 11 12 13 16 17 18 19 20 21 24 25 26 27 28 29 physical 12: cores 0 1 2 3 4 5 8 9 10 11 12 13 16 17 18 19 20 21 24 25 26 27 28 29 physical 13: cores 0 1 2 3 4 5 8 9 10 11 12 13 16 17 18 19 20 21 24 25 26 27 28 29 physical 14: cores 0 1 2 3 4 5 8 9 10 11 12 13 16 17 18 19 20 21 24 25 26 27 28 29 physical 15: cores 0 1 2 3 4 5 8 9 10 11 12 13 16 17 18 19 20 21 24 25 26 27 28 29 From lscpu: Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 768 On-line CPU(s) list: 0-767 Thread(s) per core: 2 Core(s) per socket: 24 Socket(s): 16 NUMA node(s): 16 Vendor ID: GenuineIntel CPU family: 6 Model: 79 Model name: Intel(R) Xeon(R) CPU E7-8890 v4 @ 2.20GHz Stepping: 1 CPU MHz: 2200.151 CPU max MHz: 3400.0000 CPU min MHz: 1200.0000 BogoMIPS: 4399.79 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 61440K NUMA node0 CPU(s): 0-23,384-407 NUMA node1 CPU(s): 24-47,408-431 NUMA node2 CPU(s): 48-71,432-455 NUMA node3 CPU(s): 72-95,456-479 NUMA node4 CPU(s): 96-119,480-503 NUMA node5 CPU(s): 120-143,504-527 NUMA node6 CPU(s): 144-167,528-551 NUMA node7 CPU(s): 168-191,552-575 NUMA node8 CPU(s): 192-215,576-599 NUMA node9 CPU(s): 216-239,600-623 NUMA node10 CPU(s): 240-263,624-647 NUMA node11 CPU(s): 264-287,648-671 NUMA node12 CPU(s): 288-311,672-695 NUMA node13 CPU(s): 312-335,696-719 NUMA node14 CPU(s): 336-359,720-743 NUMA node15 CPU(s): 360-383,744-767 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu mce_recovery pni pclmulqdq dtes64 ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch arat epb invpcid_single pln pts dtherm intel_pt spec_ctrl stibp retpoline kaiser tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm rdseed adx smap xsaveopt cqm_llc cqm_occup_llc /proc/cpuinfo cache data cache size : 61440 KB From numactl --hardware WARNING: a numactl 'node' might or might not correspond to a physical chip. available: 16 nodes (0-15) node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 node 0 size: 257423 MB node 0 free: 245425 MB node 1 cpus: 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 node 1 size: 258024 MB node 1 free: 248542 MB node 2 cpus: 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 node 2 size: 258024 MB node 2 free: 248532 MB node 3 cpus: 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 node 3 size: 258024 MB node 3 free: 248540 MB node 4 cpus: 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 node 4 size: 258024 MB node 4 free: 248412 MB node 5 cpus: 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 node 5 size: 258024 MB node 5 free: 248373 MB node 6 cpus: 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 node 6 size: 258024 MB node 6 free: 248440 MB node 7 cpus: 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 node 7 size: 258024 MB node 7 free: 248403 MB node 8 cpus: 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 node 8 size: 258024 MB node 8 free: 248564 MB node 9 cpus: 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 node 9 size: 258024 MB node 9 free: 248579 MB node 10 cpus: 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 node 10 size: 258024 MB node 10 free: 248575 MB node 11 cpus: 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 node 11 size: 258024 MB node 11 free: 248571 MB node 12 cpus: 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 node 12 size: 258024 MB node 12 free: 248562 MB node 13 cpus: 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 node 13 size: 258024 MB node 13 free: 248571 MB node 14 cpus: 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 node 14 size: 258024 MB node 14 free: 248553 MB node 15 cpus: 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 node 15 size: 257856 MB node 15 free: 248372 MB node distances: node 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0: 10 21 31 21 41 41 51 51 61 61 71 71 61 61 71 71 1: 21 10 21 31 41 41 51 51 61 61 71 71 61 61 71 71 2: 31 21 10 21 51 51 41 41 71 71 61 61 71 71 61 61 3: 21 31 21 10 51 51 41 41 71 71 61 61 71 71 61 61 4: 41 41 51 51 10 21 31 21 61 61 71 71 61 61 71 71 5: 41 41 51 51 21 10 21 31 61 61 71 71 61 61 71 71 6: 51 51 41 41 31 21 10 21 71 71 61 61 71 71 61 61 7: 51 51 41 41 21 31 21 10 71 71 61 61 71 71 61 61 8: 61 61 71 71 61 61 71 71 10 21 31 21 41 41 51 51 9: 61 61 71 71 61 61 71 71 21 10 21 31 41 41 51 51 10: 71 71 61 61 71 71 61 61 31 21 10 21 51 51 41 41 11: 71 71 61 61 71 71 61 61 21 31 21 10 51 51 41 41 12: 61 61 71 71 61 61 71 71 41 41 51 51 10 21 31 21 13: 61 61 71 71 61 61 71 71 41 41 51 51 21 10 21 31 14: 71 71 61 61 71 71 61 61 51 51 41 41 31 21 10 21 15: 71 71 61 61 71 71 61 61 51 51 41 41 21 31 21 10 From /proc/meminfo MemTotal: 4226684040 kB HugePages_Total: 0 Hugepagesize: 2048 kB /usr/bin/lsb_release -d SUSE Linux Enterprise Server 12 SP2 From /etc/*release* /etc/*version* SuSE-release: SUSE Linux Enterprise Server 12 (x86_64) VERSION = 12 PATCHLEVEL = 2 # This file is deprecated and will be removed in a future service pack or release. # Please check /etc/os-release for details about this release. os-release: NAME="SLES" VERSION="12-SP2" VERSION_ID="12.2" PRETTY_NAME="SUSE Linux Enterprise Server 12 SP2" ID="sles" ANSI_COLOR="0;32" CPE_NAME="cpe:/o:suse:sles:12:sp2" uname -a: Linux linux-i5c0 4.4.120-92.70-default #1 SMP Wed Mar 14 15:59:43 UTC 2018 (52a83de) x86_64 x86_64 x86_64 GNU/Linux run-level 5 Jun 28 21:16 SPEC is set to: /home/cpu2017 Filesystem Type Size Used Avail Use% Mounted on /dev/sda4 btrfs 2.4T 207G 2.2T 9% /home Additional information from dmidecode follows. WARNING: Use caution when you interpret this section. The 'dmidecode' program reads system data which is "intended to allow hardware to be accurately determined", but the intent may not be met, as there are frequent changes to hardware, firmware, and the "DMTF SMBIOS" standard. BIOS American Megatrends Inc. BLXSV320 2/23/2018 Memory: 70x Hynix HMA84GR7MFR4N-UH 32 GB 2 rank 2400, configured at 1333 15x Micron 36ASF4G72PZ-2G3B1 32 GB 2 rank 2400, configured at 1333 256x NO DIMM NO DIMM 43x Samsung M393A4K40BB1-CRC 32 GB 2 rank 2400, configured at 1333 (End of data from sysinfo program) Compiler Version Notes ---------------------- ============================================================================== CC 519.lbm_r(base) 538.imagick_r(base) 544.nab_r(base) ------------------------------------------------------------------------------ icc (ICC) 18.0.0 20170811 Copyright (C) 1985-2017 Intel Corporation. All rights reserved. ------------------------------------------------------------------------------ ============================================================================== CXXC 508.namd_r(base) 510.parest_r(base) ------------------------------------------------------------------------------ icpc (ICC) 18.0.0 20170811 Copyright (C) 1985-2017 Intel Corporation. All rights reserved. ------------------------------------------------------------------------------ ============================================================================== CC 511.povray_r(base) 526.blender_r(base) ------------------------------------------------------------------------------ icpc (ICC) 18.0.0 20170811 Copyright (C) 1985-2017 Intel Corporation. All rights reserved. icc (ICC) 18.0.0 20170811 Copyright (C) 1985-2017 Intel Corporation. All rights reserved. ------------------------------------------------------------------------------ ============================================================================== FC 507.cactuBSSN_r(base) ------------------------------------------------------------------------------ icpc (ICC) 18.0.0 20170811 Copyright (C) 1985-2017 Intel Corporation. All rights reserved. icc (ICC) 18.0.0 20170811 Copyright (C) 1985-2017 Intel Corporation. All rights reserved. ifort (IFORT) 18.0.0 20170811 Copyright (C) 1985-2017 Intel Corporation. All rights reserved. ------------------------------------------------------------------------------ ============================================================================== FC 503.bwaves_r(base) 549.fotonik3d_r(base) 554.roms_r(base) ------------------------------------------------------------------------------ ifort (IFORT) 18.0.0 20170811 Copyright (C) 1985-2017 Intel Corporation. All rights reserved. ------------------------------------------------------------------------------ ============================================================================== CC 521.wrf_r(base) 527.cam4_r(base) ------------------------------------------------------------------------------ ifort (IFORT) 18.0.0 20170811 Copyright (C) 1985-2017 Intel Corporation. All rights reserved. icc (ICC) 18.0.0 20170811 Copyright (C) 1985-2017 Intel Corporation. All rights reserved. ------------------------------------------------------------------------------ Base Compiler Invocation ------------------------ C benchmarks: icc C++ benchmarks: icpc Fortran benchmarks: ifort Benchmarks using both Fortran and C: ifort icc Benchmarks using both C and C++: icpc icc Benchmarks using Fortran, C, and C++: icpc icc ifort Base Portability Flags ---------------------- 503.bwaves_r: -DSPEC_LP64 507.cactuBSSN_r: -DSPEC_LP64 508.namd_r: -DSPEC_LP64 510.parest_r: -DSPEC_LP64 511.povray_r: -DSPEC_LP64 519.lbm_r: -DSPEC_LP64 521.wrf_r: -DSPEC_LP64 -DSPEC_CASE_FLAG -convert big_endian 526.blender_r: -DSPEC_LP64 -DSPEC_LINUX -funsigned-char 527.cam4_r: -DSPEC_LP64 -DSPEC_CASE_FLAG 538.imagick_r: -DSPEC_LP64 544.nab_r: -DSPEC_LP64 549.fotonik3d_r: -DSPEC_LP64 554.roms_r: -DSPEC_LP64 Base Optimization Flags ----------------------- C benchmarks: -xCORE-AVX2 -ipo -O3 -no-prec-div -qopt-prefetch -ffinite-math-only -qopt-mem-layout-trans=3 C++ benchmarks: -xCORE-AVX2 -ipo -O3 -no-prec-div -qopt-prefetch -ffinite-math-only -qopt-mem-layout-trans=3 Fortran benchmarks: -xCORE-AVX2 -ipo -O3 -no-prec-div -qopt-prefetch -ffinite-math-only -qopt-mem-layout-trans=3 -nostandard-realloc-lhs -align array32byte Benchmarks using both Fortran and C: -xCORE-AVX2 -ipo -O3 -no-prec-div -qopt-prefetch -ffinite-math-only -qopt-mem-layout-trans=3 -nostandard-realloc-lhs -align array32byte Benchmarks using both C and C++: -xCORE-AVX2 -ipo -O3 -no-prec-div -qopt-prefetch -ffinite-math-only -qopt-mem-layout-trans=3 Benchmarks using Fortran, C, and C++: -xCORE-AVX2 -ipo -O3 -no-prec-div -qopt-prefetch -ffinite-math-only -qopt-mem-layout-trans=3 -nostandard-realloc-lhs -align array32byte Base Other Flags ---------------- C benchmarks: -m64 -std=c11 C++ benchmarks: -m64 Fortran benchmarks: -m64 Benchmarks using both Fortran and C: -m64 -std=c11 Benchmarks using both C and C++: -m64 -std=c11 Benchmarks using Fortran, C, and C++: -m64 -std=c11 The flags files that were used to format this result can be browsed at http://www.spec.org/cpu2017/flags/Intel-ic18.0-official-linux64.html http://www.spec.org/cpu2017/flags/Huawei-Platform-Settings-V1.2-BDW-RevG.html You can also download the XML flags sources by saving the following links: http://www.spec.org/cpu2017/flags/Intel-ic18.0-official-linux64.xml http://www.spec.org/cpu2017/flags/Huawei-Platform-Settings-V1.2-BDW-RevG.xml SPEC is a registered trademark of the Standard Performance Evaluation Corporation. All other brand and product names appearing in this result are trademarks or registered trademarks of their respective holders. -------------------------------------------------------------------------------------------------------------------------- For questions about this result, please contact the tester. For other inquiries, please contact info@spec.org. Copyright 2017-2018 Standard Performance Evaluation Corporation Tested with SPEC CPU2017 v1.0.2 on 2018-06-28 17:36:55-0400. Report generated on 2018-10-31 17:25:18 by CPU2017 ASCII formatter v6067. Originally published on 2018-06-26.