1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108
|
ATLAS 3.9.33 released 01/21/11, changes from 3.9.32:
* Large number of bug patches reported by Tom Wallace applied
* Important bug patches submitted by Mike Kistler for L2 tuning:
- Allowing prefetch tuning flags when C flags not specified
- Allow timings to work in the face of low-resolution timers
* Cast threading BLAS indexing to size_t to avoid overflow
* Rewrite of lapack libs, so we have threaded/serial versions.
- Now liblapack.a and libptlapack.a!
* Addition of PCA codes for LU and QR, but not yet used by default
* Added section on ATLAS coding style to ATLAS/doc/atlas_devel.pdf
* Rewrite of dynamic lib build, so they always build one monolithic lib:
- libtatlas.[so,dylib,dll] : threaded lapack, threaded blas
- libsatlas.[so,dylib,dll] : serial lapack, serial blas
* Updated P4ESSE3 and PPCG564AltiVec arch defs
ATLAS 3.9.32 released 11/02/10, changes from 3.9.31:
* Fixed error in ATL_cgemvN_8x4_sse3.c, causing seg fault if BETA=0
- Updated arch defs for Core264SSE & AMD64K10h64SSE3
ATLAS 3.9.31 released 10/29/10, changes from 3.9.30:
* Made it so L2 searches print out error output on fatal kernel tests or
failed timings
* Made it so that unrestricted L2 timings force all operands to be aligned
to sizeof(TYPE) (and no greater), in order to get real worst-case
performance for vector codes.
* Fixed L2 timers so they allow complex arrays to be aligned to underlying
type size, rather than full complex size
* New L2 archdefs using improved timers for:
+ Core264SSE3, AMD64K10h64SSE3, Corei764SSE3
ATLAS 3.9.30 released 10/28/10, changes from 3.9.29:
* Made it so prefetchw is not tried by l2searches if 3DNow! is not detected
* Fixed error in AMD64K10h64SSE3 arch defs causing incomplete timings
* Had Level 2 BLAS use serial cacheedge rather than parallel
ATLAS 3.9.29 released 10/27/10, changes from 3.9.28:
* Removed workspace error check from all QR variant interface routs
* Fixed bug where GE[LQ,RQ]f in case where N>128 && M==N returned TAU
with the diagonal elements conjugated from what they should have been
* Fixed error in neg files used in "make ArchNew"
* Updated architectural defaults for Corei764SSE3
* Fixed error in AMD64K10h64SSE3 arch defs causing negative "make time"
ATLAS 3.9.28 released 10/25/10, changes from 3.9.27:
* Several changes so that dynamic libs will build w/o missing symbols:
+ Changed SPR, HPR so they just call the reference packed blas.
+ Removed prototypes for MV kernels that no longer exist from atlas_lvl2.h
+ Removed build of src/blas/level2/kernel, since no longer needed
* Fixed all L2 kernel searches so TimeMyKernel returns mflop rate
* Fixed bug in ATL_sgemvN_8x4_sse.c where $Y$ was read when BETA=0
* Changed it so generated Makefiles for mvN, mvT, r1, r2 kerenls use GOODGCC
if 'gcc' is specified (so they inherit flags like -pg, -m64, etc).
* Added VSX GER from Mike Kistler to kernels & Power7 arch defs
ATLAS 3.9.27 released 10/20/10, changes from 3.9.26:
* Fixed several bugs to allow L2 BLAS to install using a low-res timer
* Fixed bug in x8664 kernel description causing seg faults for CGER
* Fixed bug in r1hgen and r2hgen where first kernel's minM was ignored
* Fixed bug in ATL_her/her2 where j-loop max was N rather than NN
* Fixed bug so that h2gen.c generates ATL_GENGERK as a function that
can handle all operations, not just least restricted kernel.
* Fixed bug in ATL_syr & syr2 where nr computed incorrectly
* Fixed cblas_[nrm2,asum,iamax,scal] so that they return with no
operations if incX < 1 (this matches f77 behavior)
* Fixed bug with extra spaces in configure's OSX libtool finding script
ATLAS 3.9.26 released 10/18/10, changes from 3.9.25:
* Much improved GEMV & GER performance for x86-64:
+ Addition of SSE/x86-64 GER/GEMV generators
+ Complete rewrite of GEMV tuning infrastructure
+ Change to GER kernel API to minimize parameter passing
+ Arch defaults for Core264SSE3 & AMD64K10h64SSE3 updated
* ANSI C code generators for MVT, MVN, R1 and R2.
+ should improve non-x86/x86-64 performance
* Started rewrite of all L2BLAS:
+ GEMVT, GEMVN, GER, SYR, SYR2, HER, HER2 built from optimized kernels
- TRMV, TRSV, SYMV, HEMV just call reference implementation
* Bug fixes:
+ Fixed kernel testers & timers to correctly handle alignments,
particularly ALIGNX2A.
* Basic support for POWER7
+ VSX detection
+ VSX GEMM, GEMVN & GEMVT kernels provided by Mike Kistler of IBM
+ Arch defs
* Fixed it so GEMM kernel files use $(GOODGCC) instead of flat gcc
if 'gcc' is specified (so they inherit flags like -pg, -m64, etc).
ATLAS 3.9.25 released 06/04/10, changes from 3.9.24:
* Fixed bug causing x_tfindCE/txover to use CPU rather than WALL time
* Got rid of test -e in Makefiles, since Solaris /bin/sh disallows
* Fixed lack of return statement in lanbsrch's findNBByN().
* Hid bug in ATL_thrdecompMM_rMNK exposed by p=128 by not calling when
K is small
* Fixed bug in r[1,2]ksearch that prevented arch defs from working
* Fixed typos when setting self affinity in threading (SunOS)
* Fixed R1SUMM/R1K.sum error in ArchNew target for creating arch defs
* Added R2K.sum files to archdef Makefile, and to Core264 & k10h64 arch defs.
* Added configure support for UltraSPARC T2
+ Turned off affinity for T2, where it decreases parallel performance
* Added architectural defaults for UST264 & UST232
* Fixed errors in GER2 handling
* Fixed repeated GER/GER2 symbols that prevented shared lib build
ATLAS 3.9.24 released 04/21/10, changes from 3.9.23:
* Should see a roughly doubling in performance of L2's SYR2/HER2
* Addition of new BLAS2.5-like kernel, GER2 (rank-2 update)
- A = alpha*x*y + beta*w*z + A
* Native ATLAS support for xGELS and all subsidiary routines, including
C and Fortran interfaces for GELS
- Internal routs not yet exposed in C/F77 iface include:
+ ORM[[QL,QR,LQ,RQ] -> UNM* called ORM for complex
+ GE[QL,QR,LQ,RQ]2 (unblocked QR)
+ GE[QL,QR,LQ,RQ]R (recursive QR)
+ LADIV, LAPY2, LAPY3
+ LARFB, LARFT (F77 ifaces, but no C ifaces)
+ LARF, LARFG, LARFP
+ LASCL (not supported for banded matrices)
- Of these, should definitely expose UNM/ORM at iface level
* Addition of [D,S]LAMCH for both C & F77 interfaces
* Fixed slvtst (LU & QR) to use norm of original A, not factored matrix
in computing solve residual
* Chad fixed a bug in the SSE generator in type casting for stores
* Changed it so unknown LAPACK routs are given ATLAS's NB for NB,
rather than 1
* Fixed bug in r1hgen.c where Level 1 & 2 blocking were hugely inflated
(leading to no effective blocking)
* Updated archinfo_linux to recognize "PPC970MP" as a G5
ATLAS 3.9.23 released 02/07/10, changes from 3.9.22:
* Fixed dependency error in ATLAS/makes/Make.mmtune
* Improved mmflagsearch, so we now have O(N) greedy search as default
-> if you pass -f gcc, will gen most opt-related gcc flags in gccflags.txt
* Improved flags used on PowerPC G4 & G5
* Updated some architectural defaults:
- Corei764SSE3, PPCG564AltiVec, PPCG4AltiVec, MIPSICE964
ATLAS 3.9.22 released 02/05/10, changes from 3.9.21
* Fixed long-standing bug in cleanup code generation -- this bug has been
in package since we've generated cleanup, and it causes malformed ifs
that select cleanup code; most commonly it creates uncompilable code,
but it could also result in using a suboptimal cleanup kernel.
* Fixed another long-standing bug in cleanup code generation, this
one involving not building enough fixed=1 clean cases if there are
higher imult cleanup cases in the Q. This resulted in errors in
cleanup answers.
* Complete rewrite of search for finding best generated kernel to use
new test/time infrastructure. See ATLAS/tune/blas/gemm/gmmsearch for
new search. Cleanup and no-copy still uses old search, which is renamed
ATLAS/tune/blas/gemm/mmcuncpsearch.c. New search driver is mmsearch.c
* Chad fixed several bugs in the SSE generator relating to type casting
* Fixed genparse's DupString to handle NULL pointers
* Fixed erroneous include of atlas_misc.h in clapack.h
* Added a compiler flag search to ease job of finding good flags.
- ATLAS/tune/blas/gemm/mmflagsearch.c
* Arch def changes:
- Updated G4 defs -- reduced perf due to gcc PPC performance bug
- Corei7464SSE3: negated ?MMRES.sum mflop values
- AMD64K10h64SSE3 : updated to new style
- Core264SSE3 : updated to new style
* Some PowerPC-specific fixes:
- Fixed it so configure can autodetect clock speed on G4/Linux
- Fixed it so ATLAS always assumes gnu gcc altivec handling on PowerPC
- Renamed vector registers to numbers just like GPRs (fixes Linux/PPC
assembly, and related altivec probe)
ATLAS 3.9.21 released 01/11/10, changes from 3.9.20
* Fixed error in threaded SYMM, where recursion had bad pointer
* Created ability to tune threaded/serial crossover points, see
ATLAS/tune/blas/gemm/txover.c
* Improved CacheEdge detection
* Fixed bug in configure for --shared on archs w/o f77 compiler
* Updated lanbtst to work wt new QR naming scheme, and to compile
correctly for lanbtime (was not using lapack's ILAENV in this case)
ATLAS 3.9.20 released 12/21/09, changes from 3.9.19
* Fixed bug in call to memcpy by casting all MulBySize to size_t
* Fixed several ilaenv-related errors, including QR always using serial parms
* Made it so ORMQR and UNMQR variants use QR's tuned NB
* Fixed error in complex gemoveT & gemoveC (src/auxil)
* Made gemoveT & C TLB-aware
* Added src/auxil/ATL_sqtrans to do TLB-aware in-place square transpose
* If M==N, then RQ & LQ (row-major) do in-place transpose and call
QL or QR (column-major). This gives ~10% performance improvement.
* Added F77 interface for xLARFT and xLARFB
ATLAS 3.9.19 released 12/08/09, changes from 3.9.18
* Got rid of files in C2F now being provided natively by ATLAS:
- larft, geqrf, geqlf, gerqf, gelqf, geqrf,
* Fixed duplication of unmqr_wrk symbols
* Removed use of SAFMIN global variable in larfb/larfg
ATLAS 3.9.18 released 12/05/09, changes from 3.9.17
* Found & fixed error in threaded GEMM
* Fixed bug where lanbtst_pt didn't set NB
* Modified mmksearch_sse.c to try gcc & sse flags if native compiler
can't handle the generated files.
* Rewrote LAPACK/QR NB tuning
- now uses ATLAS/tune/lapack/lanbsrch rather than bin/lanbtst (faster)
- Now done by default
* Numerous errors fixed involving architecture default timing (all levels)
* Modified atlas_install to keep track of times for every part of install,
so we can see where time is spent
* Architectural default related changes:
- Fixed ArchNew target in building arch defs to negate .sum files
- Core264SSE & AMD64K10h64SSE needed negative values in .sum files
- Updated Core264SSE, AMD64K10h64SSE, HAMMER64SSE3 to get new threaded
lapack, and full .sum support
ATLAS 3.9.17 released 11/15/09, changes from 3.9.16
* Chad's SSE GEMM generator now works for CGEMM
- Provides faster (CGEMM) arch defs for Core264SSE3
* Addition of householder factorizations (mostly written by Siju Samuel):
- F77 & C interface, C supports row/col- major
- GEQRF GEQLF GERQF GELQF
- tester is qrtst.c in ATLAS/bin/
- Retuned LAPACK's QR NB arch defs for AMD64K10h64SSE3 & Core264SSE3
* Fixed seg fault in ummsearch caused by mmksearch_sse failure
* Rewrote Write[MM,MV,R1]File to get around gcc bug
* Fixed bugs in ATLAS/src/auxil/[ge,tr]collapse
* Fixed bug in ATLAS/tune/blas/ger/CASES/ATL_zgerk_1x4_sse3.c
* Renamed xatlas_install -> xatlas_build, to get around Windows 7
"security-through-stupidity" misfeature
ATLAS 3.9.16 released 10/17/09 (bugfix release), changes from 3.9.15
* Fixed bugs in mmksearch_sse.c for machines w/o SSE3
* Fixed errors in C2F preventing full lapack install
* Fixed error in atlas_install trying to open wrong filename in latune
* Fixed error in mmsearch's FindNoCopyNB where latency computed incorrectly
* Numerous errors related to new architectural default handling
* New architectural defaults for:
- AMD64K10h64SSE3
- Core264SSE3
- Corei764SSE3
ATLAS 3.9.15 released 10/10/09, changes from 3.9.14
* Addition of Chad Zalkin's SSE GEMM generator to ATLAS
* Support for external searches and use of standard matmul search routs in:
- include/atlas_mmparse.h
- include/atlas_mmtesttime.h
* Numerous search changes to incorporate above in ATLAS matmul install
- Changed matmul install to be much quieter
ATLAS 3.9.14 released 08/19/09 (bugfix release), changes from 3.9.13
* Fixed complex indexing errors in ATL_ger.c & ATL_zgerk_1x4_sse3.c
* Fixed error in config.c where using LAPACK caused OpenMP to be built
* Made it so C2F LAPACK interface only built if F77 LAPACK is provided
* Basic --shared install now works (tested Linux build only)
ATLAS 3.9.13 released 08/17/09 (bugfix release), changes from 3.9.12
* Fixed ATL_smm14x1x84_sseCU.c so it won't be used when NB > 84
- fixed AMD64 arch def not to use it
* Fixed 1-character memory overwrite in atlas_genparse.h's DupString
* Added prototype to r1ktest.c
* 3.9.12 showed version of 3.9.11; this version shows correct 3.9.13
ATLAS 3.9.12 released 08/06/09, changes from 3.9.11
* Complete rewrite of GER, SYR/HER and SYR2/HER2:
- New tuning mechinism tunes GER for in-L1, in-L2, and out-of-cache
* Call ATL_<pre>ger_L1 if data known to be in L1 cache
* Call ATL_<pre>ger_L2 if data known to be in L2 cache
- Most architectures now lack GER arch defs
* Provided GER archdefs 64-bit K10h and Core2
- atlas_devel not yet updated
* Relatively untested standard timing/tester code available for all
tuned kernels (GER fairly well tested)
- atlas_[mv,r1,mm]parse.h reads standard input/output files
- atlas_[mv,r1,mm]testtime.h provides tester/timer calls for kernels
* Can compile both lapack 3.2 and 3.1 with --with-netlib-lapack-tarfile
- Removed support for other ways of building lapack
- atlas_install mostly updated
* Bug fixes
- Fixed BETA=0 SCAL NaN-propogation bug (no more call to ATL_set)
- Fixed C/Z GEMM JITcp bug where C was read when BETA=0
- Fixed threaded LAPACK calling serial ilaenv (QR speedup)
ATLAS 3.9.11 released 04/07/09, changes from 3.9.10
* Added flags -Si [omp,antthr] 0/1/2 to allow ease of building ATLAS
with alternative threading implementations
* Fixed prototypes in atlas_f77wrap.h so that all thread interfaces
are properly prototyped when they are selected by the above flags
* Fixed missing TRMM prototype in atlas_tlvl3.h that caused STRSM
to fail tests in xsl3blastst_pt
ATLAS 3.9.10 released 03/11/09, changes from 3.9.9
* Rewrote tgemm's combine routine to work on arbitrary partitionings
combined in arbitrary orders (necessary for non-power-of-2 processors)
- Restricted fix for SYRK (not general, as it isn't needed yet)
* Fixed bug in EnforceNonPwr2LO caused by failure to rename moved
structure in the Cinfp array
* Fixed makefile problem that caused ATLAS to re-archive the L3BLAS for
every tester compile
* On windows, added -lkernel32 to LIBS macro to enable shared lib build
ATLAS 3.9.9 released 02/26/09, changes from 3.9.8
* Fixed bug in Xtsyrk's ATL_tsyrkdecomp_K, both on when the algorithm
is used, and correctness for when K is not large enough to give all
processors NB of work.
* Fixed bug in lanbtst, where single precision (S/C) used double values
rather than single values when determining workspace requirements
* Changed atlas_install to have a final library build phase
- Was not rebuilding lib after post-build tuning
-> Caused lapack and poss other files to be untuned unless user rebuilds
by invoking tester/timer for each subpiece
-> Caused dynamic libs to be built from badly tuned libs
* Added missing lapack arch defs for Corei764 and MIPSICE9
ATLAS 3.9.8 released 02/23/09, changes from 3.9.7
* Fixed bug in ATL_Xtgemm where ATL_thrdecompMM failed to return the
number of processors on non-power-of-2 processor systems
* Fixed bug in ATL_tsyrk where I was calling the K-splitting routine
when the required workspace was large, rather than when it was small.
* Fixed analagous problem in ATL_tsyrk as the 3.9.7 did for ATL_tgemm;
however, tsyrk bug could not have been exercised by current decomposition.
* Introduced some fixes & workarounds for SiCortex/MIPSICE9:
- Changed default MIPSICE9 compiler back to gcc, since pathcc produces
bad ATL_tsyrk when optimization is above -O1 (confirmed compiler error)
* Added dependence on atlas_ptalias3.h in cblas interface Makefile.
ATLAS 3.9.7 released 02/20/09, changes from 3.9.6:
* Fixed bug in ATL_tgemm that caused seg faults for some small-M tGEMMs
* Added architectural defaults for K7323DNow (Athlon "classic")
ATLAS 3.9.6 released 02/01/09, Changes from 3.9.5:
* Made it so LAPACK is tuned specifically for threading as well as for serial
- Added threaded lapack arch defs for:
+ Core264SSE3, P4E64SSE3, Corei764SSE3
* Made it so LAPACK NB-tuning is mu/nu aware
* MIPSICE9 (sicortex) improvements:
- added pathcc arch defs
- updated gcc arch defs to better values
--> Still getting errors on this platform
* Some bug fixes:
- Detect model 29 as Core2
- Rewrote ptFlushAreasByCL to use new thread framework
- Fixed handling of non-power-of-2 number of threads
- Better dependencies for building ilaenv
ATLAS 3.9.5 released 12/11/08, Changes from 3.9.4:
* Complete rewrite of ATLAS threading system:
- Now supports native windows threads in addition to pthreads
- Use of master-last and affinity increases threaded performance, with
an advantage that grows with P (almost no advantage for P=2, but for
instance LU is more than 60% faster asymptotically on a P=8 Core2)
+ OS X and FreeBSD don't support processor affinity, and so their
performance is still bad
- Cacheedge specifically tuned for threading (another 5%)
* Changed emit_buildinfo so that it replaces all control characters with
spaces (prevents errors under windows).
* Added dependency info for ATL_ilaenv so that it is recompiled once
lapack tuning is complete
* Fixed error in configure where it issues commands in wrong directory
when the user builds lapack directly from a tarfile
* Fixed typos in config.c where I used 'comp' rather than 'comps'.
* Added mmtime_pt.c, which can allow us to find kernels that do well
in parallel operation.
* Various small configure fixes for windows
ATLAS 3.9.4 released 09/06/08, Changes from 3.9.3:
* Improved Windows/cygwin configure with addition of archinfo_win.c
* Added basic support for Windows/interix
- Did not pursue much due to widespread seg fault in gcc, hundreds of
hard-to-get "hot fixes", and ancient gnu tools that can't assemble SSE3
* Removed special "no-need-to-copy" cases from ATLmm_JIK/IJK.c, since they
occasionally seem to cause large performance drops.
* Changed it so JIK matmul always called for rank-K update, in order to
reduce access costs on C.
* Fixed several errors in ATLAS's ILAENV.
* Fixed several errors in configure
* Fixed error when -Ss lasrc is given as relative rather than absolute path
* Added BETA support for auto-building shared/dynamic libraries when the
user passes --shared to configure (no need to explicitly set compiler
flags [eg., -fPIC] for any of the known compilers):
- Not fully tested, but appears to work for Windows, OS X and Linux
- Now referenced in make install, but present process is crude
- with --nof77, get clapack reather than lapack; eventually probably want
a logical link of lapack
ATLAS 3.9.3 released 08/13/08, Changes from 3.9.2:
* Added much more extensive testing capability:
- make full_test / make scope_full_test
+ Added Antoine's testing scripts to ATLAS. Just do a "make full_test"
to run them ("make full_test_nh" to use nohup for remove connection).
- make lapack_test[a,s,f]l_[ab,sb,fb,pt] / make scope_lapack_test_?l_??
+ Runs lapack testers linked against indicated lapack & BLAS
- See INSTALL.txt/"EXTENDED ATLAS TESTING" for further details
* Added several missing symbols from full LAPACK build
* Fixed it so ?lamch are compiled wt no optimization.
* Added ATLAS/src/blas/f77reference for ease of testing. Made it so by
default Make.inc's FBLASlib and BLASlib macros are set to this lib.
* Fixed errors in arch default creation for LAPACK defaults
* Changed test in LAPACK build Makefile to get around solaris shell
incompatibility
* Added architectural defaults for LAPACK QR tuning for:
- AMD64K10h32SSE3 (first time 32-bit archdefs are given for this arch)
- AMD64K10h64SSE3
- PPCG564AltiVec
- Core232SSE3
- HAMMER64SSE3
ATLAS 3.9.2 released 08/09/08, Changes from 3.9.1:
* Improved Core2 performance, particularly for 32 bit and/or single precision
* Changed Core2Duo arch name to Core2, since we use this description for
the entire Core2 family (including Xeon, Core2Quad, etc).
* Bug fixes:
- Fixed cycle of dependencies in L1 Makefiles causing an endless stack
of make processes (wt assoc hang) to spawn when tuning the L1 BLAS
- Fixed compile probs for archs w/o cacheline flush in assembly
- Fixed error in configure caused by change in CPUID usage
- Added missing f77 wrappers for GERQF and GEQLF
- Avoided CPP division in assembly on Solaris, due to binutils/solaris bug
ATLAS 3.9.1 released 07/22/08, Changes from 3.9.0:
* Fixed several small bugs in ATLAS/src/auxil/ATL_ptflushcache.c
* Fixed f77wrap ilaenv renaming errors
* Fixed error in ATLAS/src/test/ATL_f77geqrf.c that messed up --nof77 builds
* Fixed failure to quote MVCC, which messed up MVTUNE on some systems
* Fixed these errataed errors:
- http://math-atlas.sourceforge.net/errata.html#trsmNB
- http://math-atlas.sourceforge.net/errata.html#mipsK
ATLAS 3.9.0 released 07/17/08, Changes from 3.8.2:
* Added ATLAS/bin/lanbtst.c, which can be used to time lapack routines,
as well as tune the NB returned by ILEANV
- Ability to autotune LAPACK QR factorization performance by varying NB
+ Added QR NB choice header files to Core2Duo arch defs
* Started producing standard C wrappers for F77LAPACK. See:
ATLAS/include/C_lapack.h
* Much improved DGEMM performance for Core2Duo and AMD K10h
* Configure improvements:
- Added '--with-netlib-lapack-tarfile' and '-Ss lasrc' flags to configure
so that the full F77LAPACK can be built w/o having to compile anything
external to ATLAS (no more fiddling with LAPACK's make.inc!)
- Added -Si latune [0,1] to autotune LAPACK QR performance
ATLAS 3.8.3 released 02/21/09, Changes from 3.8.2:
* Fixed bugs:
- Numerous improvements to configure's architecture recognition
- Fixed D/ZGEMM cleanup error on MIPS
- Fixed TRMV tuning Makefile error
- Fixed Makefile error preventing TRSM tuning
- Worked around gcc's Solaris division bug
* Backported Core2 and K10h GEMM kernels
- Makes a *huge* perf diff on Intel boxes, slight improvement for K10h
* Added arch defs for Corei7 (64 bit only)
ATLAS 3.8.2 released 06/06/08, Changes from 3.8.1:
* Fixed bugs:
- Pervasive performance bug in GEMM, affecting all architectures
- Occasional access of C when BETA=0
* Configure improvements:
- Improved freebsd architecture probe
- Improved linux cpu throttling probe
* Added mu=4 SSE M cleanup for extra performance
ATLAS 3.8.1 released 02/22/08, Changes from 3.8.0:
* Fixed bug in slvtst that counted complex flops same as real
* Fixed bug causing wrong answer for row-major gemm C=A*A' or A'A
* Fixed bug in configure causing Pentium-M to be IDed as CoreDuo
* Fixed bug in tfc.c causing memory overwrite when too many samples taken
* Improved L1 BLAS timers so they work like the rest of the package, and
thus don't die all the time on tolerance failures
* Improved ATLAS/tune/blas/gemm/mmsearch.c:
- for x86, tried more registers, since smart compiler can reduce A & B
regs to 2 (and possibly even 1)
- Made it so search tries both load-C-at-top and load-C-at-bottom of
M loop. Bottom is superior for error, and ATLAS originally defaulted
to load-C-at-top.
* Added configure support for new K10h platform from AMD, as well as
basic architectural defaults (no new kernels, just good search)
ATLAS 3.8.0 released 10/10/07, changes from 3.6.0:
* Improved installation support: now works with 5-step standard install:
- configure, build, check, time, install
- Support for easily building 32 or 64 bit libraries
- Support for building dynamic (shared) libraries
- Can build in any directory
* Added detailed installation guide (ATLAS/doc/atlas_install.pdf),
indicating how to build ATLAS, as well as describing how you can
ensure that the produced libraries get adequate performance as well
as the correct answers.
* Improved GEMM performance on most platforms:
- HAMMER (Opteron/Athlon-64), P4, P4E, Core2Duo, CoreDuo, MIPS,
G5/PowerPC970, POWER4, POWER5, etc.
- Better handling of long-thin matrices (K >> M,N) and rank-K, K<=4 shapes
- Improved complex performance on some platforms
- Further reduced error on some platforms
+ ATLAS error bound always <= reference BLAS before reduction
* More OS support:
- OSX/x86, Solaris/x86, Linux/MIPS, modern Windows,
* A lot of other changes, see developer ChangeLog below for further details
ATLAS 3.8.0 released 10/10/07, changes from 3.7.40:
* Updated some documentation
ATLAS 3.7.40 released 10/10/07, changes from 3.7.39:
* Fixed configure, where lack of \n after GOODGCC caused errors on Itanium
* Increased MAXALLOC in tfc.c to allow larger malloc in CacheEdge detection
* Replaced nonportable == with -eq (int) or = (str) in test lines of
configure
* Rewrote config's handling of 32/64 compiler flags to be more robust
to get around error found when trying to install 32bit SunOS libs
* Added USIII architectural defaults and config support
* Updated atlas_devel and atlas_contrib
ATLAS 3.7.39 released 10/07/07, changes from 3.7.38:
* Updated configure to handle AIX 64-bit flags automatically
* Expanded and corrected PowerPC ABI section in atlas_contrib
* Fixed PowerPC assembly kernels to work under AIX for 64 & 32 bit ABIs
ATLAS 3.7.38 released 10/05/07, changes from 3.7.37:
* Added new install guide, ATLAS/doc/atlas_install.pdf
* Updated docs
* Added F77 testing wrappers for POSV and GESV, so slvtst can test F77 iface
* Expanded configure support for AIX, but build still dies
* Configure support and flags for G4
* Added arch defaults for:
- Pentium III
- G4 using apple's hacked gcc 3.1
- HAMMER32SSE3
- HAMMER32SSE2
ATLAS 3.7.37 released 08/10/07, changes from 3.7.36:
* Fixed error in gemm, so we call SYRK for A*A^T only when beta=0
ATLAS 3.7.36 released 08/09/07, changes from 3.7.35:
* Some smoothing ops allowing easier use of windows compilers
* Fixed error in mmsearch causing PPC searches to die wt latency problems
* Fixed error where wrong flags caused snrm2 to be incorrect on Core2Duo
* Changed GER to heavily favor applying alpha to X, in order to keep LAPACK
from barfing up a lung on those tiny matrix test cases
* Fixed error in complex syreflect causing wrong answers in [c,z]gemm when
gemm is used to do a syrk
ATLAS 3.7.35 released 07/26/07, changes from 3.7.34:
* Changed it so pthread calls assert zero return value (debugging aid)
* Improved threaded GEMM performance for cases where two dim < NB
* Increased default MaxMalloc to 64MB
* Improved Windows support:
- Added support for building Windows ATLAS with Intel's ifort
- Added support for building on Windows without the cygwin library
- Added ability to get cycle accurate timer when using Windows compiler
* Improved POWER4 & P4SSE2 arch defaults.
* Removed duplicate symbols in Make.mmsrc messing up shared library building
ATLAS 3.7.34 released 06/25/07, changes from 3.7.33:
* Fixed error causing read of C for beta=0 in ATL_mmJITcp
* [S,D]KC compiles the bulk of the non-kernel library
* Added 64 bit single precision Core2Duo kernel, added to arch defs
* Added gcc4.2/P432SSE2 arch defs
* Changed all Makefiles so ICC compiles only interface routines, and
* Added support for POWER4/Linux, including 64 & 32 bit arch defs using gcc
- No xlc support or single precision assembly yet
* Install using gnu compilers now works under Windows
* Now works correctly for Linux/POWER5/gcc
ATLAS 3.7.33 released 05/01/07, changes from 3.7.32:
* Made it so ATLAS builds on Solaris x86:
- Had to remove all constant divides in integer expressions in assembly,
as Sun geniuses decided to change comment character to '/'
+ \/ is supposed to work, but doesn't
- Had to touch every x86 assembly file to change assembly comments to /**/
ATLAS 3.7.32 released 04/27/07, changes from 3.7.31:
* Adapted MIPS double prec kernel to single
* Added 32-bit support (n32) to MIPS (assembly & config)
* Ported UltraSPARC assembly kernels used by arch defs to v9 ABI
* Added arch defs to build 64 bit (v9) ABI for Solarix/UltraSPARC
* Documented these new interfaces in atlas_contrib.
ATLAS 3.7.31 released 04/17/07, changes from 3.7.30:
* Fixed bug in atlas_prefetch found by David Cournapeau.
* Added MIPSICE9 prefetch option, d/zgemm assembly kernels and arch defaults.
- These should work on most MIPS platforms
- Assembly kernels work under IRIX, but no way to get cc to do prefetch
+ could not make cc's pragma work with ATLAS's atlas_prefetch defs
* Added support for OSX/PowerPC970:
- Double precision assembly kernel getting 82.5% of peak (4*Mhz)
- Single precision assembly kernel getting 79% of peak (8*Mhz)
- Arch defaults for 64 & 32 bit installs
- Config support for random-ass apple flag extravaganza
ATLAS 3.7.30 released 03/25/07, changes from 3.7.29:
* Bug fixes
- fixed error in building --nof77 dynamic libs
- fixed dynamic lib link for f77 interface libs
- Updated L1 kernel testers in tune/ for function routs to call the test
func first (so correct answer not on stack), and to check for NaN
- Fixed it so error report genned again.
- Fixed error causing real JITcp to copy all the time, and then fixed
error in func ptr when this was selected.
* Wrote special Just In Time Copy (JITcp) gemm for complex that copies A&B
a block at a time, and calls the real kernel for complex matmul
- Speeds up large-case z/cgemm on some platforms (5-10%)
- Speeds up long-K case for some platforms (as much as doubles perf)
* Fixed miscalculation of CacheEdge, where I stopped using it for large K.
This fix reduces memory usage, and speeds up asymptotic case a bit.
ATLAS 3.7.29 released 02/28/07, changes from 3.7.28:
* Wrote special routines (mmBPP and mmMNK) for handling small M, N and
large K case. For M = N <= NB can double performance. Presently works
for real precisions (s,d) only.
* Translated x87 Athlon-64 kernel to 32-bit assembly.
* Put in special code to handle SYRK call to GEMM by calling SYRK and
reflecting the triangular matrix. Doubles speed, and avoid fp error
on reflection.
* Added arch defaults for Core2Duo32SSE3
* Fixed some problems with -b 32 in configure and building dynamic libs
* Fixed ATLAS/bin Makefile to correctly link x?l1blastst_dyn
* Enlarged MaxMalloc
ATLAS 3.7.28 released 02/11/07, changes from 3.7.27:
* bugfix release on 3.7.27 on configure/compiler behavior:
- Fixed possible infinite loop in probing for f77libs
- Made gnu arch defaults work for gnu compilers regardless of compiler name
ATLAS 3.7.27 released 02/10/07, changes from 3.7.26:
* Support for building ATLAS to .so! See INSTALL.txt for details.
* Expanded support for appending compiler flags:
- Can specify flags to be appended to gcc in user-contributed index files
- Can append flags to only C compilers
- Can append flags to only C+usergcc, all+usergcc, etc.
* Configure now recognizes gnu compilers as gnu compiler regardless of
compiler name when looking for default flags for user-override compilers
ATLAS 3.7.26 released 01/30/07, changes from 3.7.25:
* Added line to all assembly files to declare them as not requiring an
executable stack for Linux (apparently, lack broke SELinux).
* Numerous assembly fixes, particularly forced use of .text and asmdecor
in all x86 assembly files.
* Fixed dnrm2's to call sqrtl to avoid gcc round-down.
ATLAS 3.7.25 released 01/22/07, changes from 3.7.24:
* Added x87 nrm2 assembly kernels to avoid gcc probs, changed old
gcc-compiled nrm21 kernels to use double native precision for
accumulator (breaks dnrm2 due to gcc's spurious round-down).
* Changed Athlon64 and Core2Duo arch defaults to use load-at-bottom gemm
kernels, which should reduce GEMM error
* Changed configure to error out if ran in ATLAS source directory.
* Changed all ATLAS/doc postscript files to .pdf
ATLAS 3.7.24 released 12/18/06, changes from 3.7.23:
* Fixed alignment problem in x87 hammer kernel causing large performance
losses for AMD64 machines.
ATLAS 3.7.23 released 12/07/06, changes from 3.7.22:
* Fixed bug in Makefile causing repeated path
* Added basic config support for Irix
* Added basic arch defaults for MIPS R1[2,4,6]K using MIPSpro cc
* Several small bug/compatibility fixes found by MIPS/cc install
* Modified handling of MAFLAGS to prevent compiler hang for gcc3/Itan
and cc/MIPS.
ATLAS 3.7.22 released 11/26/06, changes from 3.7.21:
* Fixed bug in mmsearch's ProbeFPU that gave advantage to muladd=0, not =1.
* Added support for Itanium's to config
- Added extra lines with gcc 4's best flags to ?cases.flg
- gcc 3 still produces best code by slight margin
- Found arch defaults that do well for both gcc 3 & 4
* Fixed complex C = A A' bug:
https://sourceforge.net/tracker/index.php?func=detail&aid=1598272& \
group_id=23725&atid=379482
ATLAS 3.7.21 released 11/18/06, changes from 3.7.20:
* Made gemm call axpy-based GEMM when K < 4 && M >= 40 and
no-copy code would be used -- should help bottom of LU recursion perf
* Changed it so all F2C probes linked by Fortran do all I/O in Fortran,
instead of printing from C (some platforms seem to have problems
redirecting C I/O from a Fortran-linked program).
* Several bug fixes
* Added config support for solaris install
ATLAS 3.7.20 released 11/11/06, changes from 3.7.19:
* Added ability to use Cij = instead of Cij += on first iteration of loop
in emit_mm.c:
- Max K unrolling where this is done is set by cpp macro MAX_CASG_KU
to avoid code bloat (always works for full unroll)
- For muladd=1, doesn't work if K is unknown at compile-time
- Speeds up load-at-bottom and beta=0 code
* Added ability to prefetch C when prefA selected and doing load-at-bottom
or beta=0. Gives nice speedup on HammerX2, need to test other machines
* Added -falign-loops=4 to x87-using flags
- big speedup on Hammer, need to test on Intel
* Several bug fixes to allow config/install to work on OSX/Core2Duo:
- Fixed userindex so that it substitutes $(GOODGCC) for gcc in .SSE & .3DN
files as well as in .flg
- Made user override of 64 bits switch the probed assembly if it was
probed to be x8632
- Fixed freebsd archinfo syntax error (typo in code that fixed overflow).
- Fixed typo in iamax_SSE.c
- Replaced binary constant with hex in Core2Duo gemm kernel
- For portability, rewrote saxpy_sse.c to avoid indirect jumps
ATLAS 3.7.19 released 10/14/06, changes from 3.7.18:
* Fixed config so it defines [S,D]MAFLAGS, and changed muladd probe
to use them
* Fixed a couple more assembly files to work with OS X
* User can now successfully override 32/64 bit choice on the configure
line using -b [32,64].
- Made config append -m32/-m64 to gnu compiler collection when ptrbits
is overridden by the user on the configure line
- Fixed error in userflag.c
- Fixed lack of ' ' around C compiler names in GEMM files
- After probes finished in config, made 32-bit override change detected
asmb to 32 if it was presently 64
ATLAS 3.7.18 released 10/12/06, changes from 3.7.17:
* Bugfix release only:
- Fixed configure so that multiple compiler flags can be passed to config.
- Adapted x86 assembly kernels in Level 1 & src directories so that they
will also run under OS X
- Added needed #define to ATLAS/src/invtst.c
- Added fix to disambiguate int & long in f77/C interface
ATLAS 3.7.17 released 09/09/06, changes from 3.7.16:
* Added ability to generate non-diagonally dominant positive definite
matrices to Cholesky-based testers if POSDEFGEN is defined
* Added new Core2Duo kernel (also think good for P4E64).
* New Core2Duo arch defaults.
ATLAS 3.7.16 released 08/30/06, changes from 3.7.15:
* Added flag --with-netlib-lapack to configure
* Added src/testing f77 wrapper for QR
- Still must write LU wrapper and test LLt
* Added crude ability to call QR from slvtst
* Added config support for Core2Duo and Core2Solo
* Added architectural defaults for Core2Duo64SSE3
- Hand-tuned cases not yet optimized; presently using P4-tuned kernels
* Made "make install" allow copy of fortran interface to fail w/o dying
(for users w/o fortran compiler)
ATLAS 3.7.15 released 08/22/06, changes from 3.7.14:
* New x87 kernel that achieves over 90% of peak for double precision
Opteron/Athlon-64. Gemm runs at roughly same speed as old SSE kernel,
but LU and Cholesky actually get a speedup. The fp stack usage
of this kernel was suggested by the new gcc.
- New arch defaults for HAMMER64SSE[2,3]
* Modified ILEANV so small problems aren't told to use the full ATLAS NB.
* Fixed error in mmsearch.c that often caused complex performance to be
misreported
* Fixes/updates to ATLAS config system:
- Added support for DESTDIR system on install target as in gnu
- Made config kill any genned core and object files after run
- Made "make build" delete all config executables
- Added --nof77 to configure
- Added "make check" as sanity test instead of "make test"
+ If --nof77 has been thrown, "make check" only calls C interface testers
- Added probe for 3DNow, merged 3DNow 1 & 2.
ATLAS 3.7.14 released 08/17/06, changes from 3.7.13:
* Fixes/updates to ATLAS config system:
- Improved cpu throttling probe
- Added compiler test so only compilers that work are chosen from defaults
- Added simple C interoperation test
- Fixed frontend/backend tmpnam collision prob (config[1,0].tmp)
- Re-enabled parallel make support
- Fixed buildinfo support
- Added clock speed probe to config
- Enabled "make time" to produce performance summary!
- Added "make check" as alias to "make test" to make more like gnu
-- Alias not working, need to check!
- Fixed error in -Si nof77 1, which caused config to die w/o f77 compiler
* Added new arch defaults for P4E[32,64]SSE3 and HAMMER64SSE3, which get
better performance for gcc 4.2 (perf should still be OK for gcc 3).
ATLAS 3.7.13 released 07/26/06, changes from 3.7.12:
* Mainly, fixes/updates to ATLAS config:
- Added cpu throttling test to linux, and enabled it
- Added "make install" to copy libs and includes
- Fixed basic "make error_report"
- Added 32/64 bit distinguishing in x86 arch def
- Added "-Si nof77 1" to enable easier build wt no f77 compiler
- Added "--help" handling to configure
- Added "-Si archdef 0" to suppress use of architectural defaults
- Added "-Si cputhrchk 0" to suppress CPU throttling error exit
ATLAS 3.7.12 released 07/19/06, changes from 3.7.11:
* Completely rewrote configure handling to make ATLAS act more like
gnu configure
- You now build ATLAS in an arbitrary build directory
+ /path/to/ATLAS/configure ; make build ; make test
- Read ATLAS/INSTALL.txt for directions, everything is changed!
- Presently, only supported OSes are Linux and FreeBSD (OSX).
Will be adding more in subsequent developer releases.
* Added support for prefetch in generator, mmsearch.c, fc.c, etc.
* Improved broken GetUserNB in ummsearch.c, which prevented good user cases
from being found on many systems
* mmsearch.c improvements:
- Added prefetch searching
- Updated FindMUNU to suggest 1-D vals on x86 boxes (2-op assembler).
- Made sure GetNO1D always returns false for x86 boxes (2-op assembler)
- Added special case for large number of registers (eg. Itanium) to
speed up munu search (searches near-square only)
+ Untested, and likely needs fixing
- several small error-handling issues
* Improved masearch.c & L1CacheSize.c to make loop-removal by compiler
less likely.
ATLAS 3.7.11 released 07/21/05, changes from 3.7.10:
* This is a bugfix release:
- Fixed doc path errors caught by Kate Minola
- Fixed f77getrf/getri FunkyInts declaration
- Fixed Level 1 ref stX/StX typo in ATL_[dz,sc]refnrm2 caught
by Neil James
- Fixed assembly typo in ATL_dmm6x1x72_sse2 caught by Simon Perreault
- Added Dean's x86 assembly probe as backup for uname x8664 probe,
as Kate Minola reports uname probe doesn't work under solaris/x8664
ATLAS 3.7.10 released 04/24/05, changes from 3.7.9:
* Updated config.c to use Dean Gaudet's contributed CPUID probe to get
relatively OS-independent x86 arch info.
* Fixed problem where altivec makes config think not using arch def flags.
* Added support for EM64T:
- Updated config to search for x86_64 independant hammer arch
- Updated P4E assembly kernels to run under x86_64
- Updated hammer kernels to not use 3DNow inst if compiled on Intel
+ cpp macro ATL_Has3DNow is now defined on sys possessing 3DNow!,
even if SSE is the selected SIMD paradigm
- Generated P4E64 arch defaults
* Added support for 64 bit ABI PowerPC Linux:
- Updated config to search for 64 bit PPC
- New macro ATL_USE64BITS set for all 64 bit ABI
- Updated G4 assembler kernel to handle 64 and 32 bit Linux ABIs
- Updated G5 assembler kernel to handle 64 and 32 bit Linux ABIs
ATLAS 3.7.9 released 04/22/05, changes from 3.7.8:
* In order to get icc to auto-vectorize, changed all ref L1 for loops:
for (i=0; i != N; i++) ---> for (i=0; i < N; i++)
also changed code generator (only if ATL_SSE1 defined):
for (k=N; k; k--) ---> for (k=0; k < N; k++)
* icc arch defaults for P4e (using autovectorization)
* Fixed errors in FA_malloc
* Changed mmsearch to use median of CPU times and min of WALL (no more tol)
* Updated config to recognize the G5 (PPC970FX) and handle apple gcc
* Updated AltiVec kernel to use line fetch for G5
* Added G5-specific DGEMM assembly kernel
* Arch defaults for G5
ATLAS 3.7.8 released 07/24/04, changes from 3.7.7:
* Better [d,z]GEMM kernel for Transmeta Efficeon
ATLAS 3.7.7 released 07/17/04, changes from 3.7.6:
* Better [d,z]GEMM kernel for Transmeta Efficeon
ATLAS 3.7.6 released 07/16/04, changes from 3.7.5:
* Arch defaults & config support for Transmeta Efficeon.
* New single prec SSE kernel, added to P4E arch defaults.
ATLAS 3.7.5 released 06/27/04, changes from 3.7.4:
* Added PA-RISC 2.0 config support, arch defaults, & assembly kernels
ATLAS 3.7.4 released 06/12/04, changes from 3.7.3:
* Modified L1 testers so they all take same flags
* Modified L1 timers so they all take same flags (not same as testers)
* Modified L1 & L2 tester & timers so they all take force-alignment flags:
-Fa 16 -Fx -32 : force 16-byte align for A, misalign X to 32 bytes
ATLAS 3.7.3 released 03/20/04, changes from 3.7.2:
* Added P4E (prescott) support
* Changed config to distinguish between P4 implementations based on model
number; presently knows about P4 (models 0-2) and prescott (model 3)
* Added SSE3 to ISA probe
* Updated s/d P4 kernels (not cleanup yet) to work with SSE3, and smaller
block sizes that prescott likes
* Added architectural defaults for P4E (prescott)
ATLAS 3.7.2 released 02/29/04, changes from 3.7.1:
* Added empirical tuning of TRSM_NB parameter
ATLAS 3.7.1 released 02/21/04, changes from 3.7.0:
* Increased 32-bit hammer single precision gemm to 64 bit speed
ATLAS 3.7.0 released 02/14/04 (I love optimization), changes from 3.6.0:
* Increased 32-bit hammer double precision gemm to 64 bit speed
ATLAS 3.6.0 released 12/22/03, changes from 3.4.2:
* Gemm speedups for most architectures
- Hammer (Opteron/Athlon-64)
- IA64 family
- P4
- PIII
- UltraSparc II & III
- single precision real Athlon3DNow! by Tim Mattox & Hank Dietz
* Faster Level 2 for P4/PIII due to improved gemv/ger kernels
by Camm Maguire
* Faster SYRK/HERK & dependent Cholesky
* New arch defaults for most architectures
* Many config changes, including command-line selection of compilers & flags
* Better complex row-major Cholesky factor & solve
* Several new architectures and compilers supported with arch defaults
- Explicit support for Intel compilers on P4 & PIII
- IBM Power 4 arch defaults included
*** See developer ChangeLog below for details
ATLAS 3.6.0 released 12/21/03, changes from 3.5.22:
* Forced all non-x86 archs to have max TRSM_NB of 8, to prevent massive
Cholesky performance dropoff (essentially a performance bug)
ATLAS 3.5.22 released 12/20/03, changes from 3.5.21:
* Added ifort support under Windows
* Small fixes for the timers
* Made config default to not searching for BLAS
ATLAS 3.5.21 released 12/19/03, changes from 3.5.20:
* Added MVC support, plus non-gemm arch defaults for P4
(thus './xconfig -b 0 -c mvc -f cvf' now gets you very good CVF lib)
* Defined symbols required for dynamic library
* Fixed bug in GetSysSum
* Numerous small config changes, mainly to make things smoother under windows
ATLAS 3.5.20 released 12/18/03, changes from 3.5.19:
* Config fixes
* Bunch of changes necessary to make CVF/icl work under windows
ATLAS 3.5.19 released 12/17/03, changes from 3.5.18:
* Numerous config bug fixes
* Added dummy ATL_cpmmJIKF symbol to lib (.so workaround)
* Arch defaults for US5 cc & gcc (missing L1 defaults for cc)
* Arch defaults for US2/4 gcc & cc
* Possible overflow & unnecessary division removed from ATL_walltime.c
* Added back winf77 stuff for Windows
- missing __alloca prevents CVS from linking, may be compiler bug:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8750
ATLAS 3.5.18 released 12/15/03, changes from 3.5.17:
* Fixed bug killing multithreaded ATHLON
- Replaced Peter adaptation of Julian's kernel with my athlon kernel
for all cleanup and all precisions other than double real
* Rewrote compiler and flag handling in config, again
- do ./xconfig --help for new options
* Better compiler flags for gcc on IA64 (3.5.16 "improvement" was mistake)
ATLAS 3.5.17 released 12/13/03, changes from 3.5.16:
* Numerous small config fixes
* Removed compiler & flag mentions from GER cases files
* Architectural defaults & config flags for intel compilers on IA64 & PIII
- IA64/icc *much* faster than IA64/gcc for normal-size problems
+ same asymptotic GEMM speed due to hand-tuned kernel
* Workarounds for icc bugs on IA64Itan2:
- Fixes errors in [d,s]TRSM, [c,z]HER, [c,z]HPR, [c,z]HER2K, [c,z]SYR2K
- fgrep code for ATL_IntelIccBugs:
+ ATLAS/src/blas/level2/ATL_[hpr,her].c
+ ATLAS/src/blas/level3/kernel/ATL_syrk2_put[L,U].c
+ ATLAS/src/blas/level3/ATL_trsm.c
- If you don't use arch defaults, other icc bugs can kill you
ATLAS 3.5.16 released 12/10/03, changes from 3.5.15:
* Added command-line selection of compilers for config
* Added pthread options to compile flags for MP FreeBSD
* Better compiler flags boosts Itanium 2 performance
* Fixed bug in GEMV makefile generation that prevented ATL_gemvS that
required special compiler and flags from working
* Added some icc support to config (Linux ONLY)
* Add arch defaults for Pentium 4/icc
* Added arch defaults for IA64Itan2/icc:
- Don't use: presently they fail tester, probably compiler error
* New AthlonSSE1 defaults, courtesy of Tim Mattox
* Fixed bug causing hangs for installs with large NB and small CacheEdge
ATLAS 3.5.15 released 12/08/03, changes from 3.5.14:
* Added arch defaults and config support for IBM Power4
* New PIIISSE1 arch defaults
* Updated L1CacheSize for crude timer resolution fix
* Changed cygwin cp fix from @ - cp to -@ cp (AIX Make requirement)
ATLAS 3.5.14 released 12/07/03, changes from 3.5.13:
* Improved L1 and CacheEdge detection
* All of Camm's new stuff in and working:
- CGEMV improved for Pentium 4 defaults
- All of Level 2 improved for 32 bit Hammer
- Improved Level 3 cleanup for 32 bit Hammer
* Updated 32 bit Hammer arch defaults
- Improved Level 2 from Camm's stuff
- Improved Level 3 from Camm and my P4 cleanup
* Improved 64 bit Hammer [d,z]GEMM M cleanup using new 1x14 kernel
ATLAS 3.5.13 released 11/30/03, changes from 3.5.12:
* Row-major, complex Cholesky error fixes
* New, and *much* more efficient Athlon 3Dnow! kernel from
Tim Mattox & Hank Dietz
* New P4 gemm cleanup cases, speeding up small-to-medium size problems
for double precision (real & complex)
* New P4 Level 2 kernels from Camm Maguire, speeding up Level 2 and
fixing massive compiler warnings
* More arch defaults, including BOZOL1, to allow skipping L1 tuning
* Added version number to Make.ARCH and install log files.
* Improved still-crappy cleanup search
ATLAS 3.5.12 released 10/05/03, changes from 3.5.11:
* New assembly UltraSparc kernels for both Ultra2 & 3.
* New arch defaults for UltraSparcs
ATLAS 3.5.11 released 09/27/03, changes from 3.5.10:
* Windows-specific makefile changes to match new cygwin behavior
ATLAS 3.5.10 released 09/13/03, changes from 3.5.9:
* Opteron speedups, all precisions Level 3
* SPRK bug fixes
ATLAS 3.5.9 released 08/27/03, changes from 3.5.8:
* Recursive partitioning algorithm for when we can't copy A up front in
SYRK/HERK
* Itanium 2 gemm kernel, speeding up entire Level 3 BLAS
* Arch defaults and config support for Itanium 2
* Arch defaults & config support for USIII (presently fails sanity test)
* Various bug fixes
ATLAS 3.5.8 released 08/09/03, changes from 3.5.7:
* Direct gemm-kernel [c,z]SYRK and xHERK implementation significantly
boosts SYRK/HERK and Cholesky performance
* Numerous bug fixes
ATLAS 3.5.7 released 07/15/03, changes from 3.5.6:
* Direct gemm-kernel implementation of SYRK significantly boosts SYRK and
Cholesky performance (only in real precisions so far).
* Fixed some errors that occur when using Solaris make rather than gnu.
ATLAS 3.5.6 released 06/26/03, changes from 3.5.5:
* Opteron speedups:
- Full cleanup for Opteron [d,z]GEMM
- Better CacheEdge improves threaded GEMM speed
* Bug fixes:
- Removed some extraneous characters my windows changes introduced
in assembler kernels
- Fixed errataed error in clapack.h
ATLAS 3.5.5 released 06/22/03, changes from 3.5.4:
* More Opteron [d,z]GEMM speedups
* Small Pentium 4 [d,z]GEMM speedup
* Fixes to support cygwin/windows compilation
- Removed reliance on case-sensitive archiver
- Workaround for windows assembly name-mangling
- Forced config to look for gcc-2
ATLAS 3.5.4 released 06/15/03, changes from 3.5.3:
* Opteron [d,z]GEMM speedup
ATLAS 3.5.3 released 06/14/03, changes from 3.5.2:
* Fixed Athlon STRSM so sLU is sped up by new SGEMM from 3.5.2
* Fixed aligned access error in iamax_sse
ATLAS 3.5.2 released 05/03/03, changes from 3.5.1:
* Athlon GEMM speedups for all precisions
ATLAS 3.5.1 released 04/21/03, changes from 3.5.0:
* Added AltiVec support via gcc 3.3 or newer (older gcc buggy)
- This gives Linux AltiVec speedups for first time
* Added support for OSX and Linux PPC assembler dialects to config
ATLAS 3.5.0 released 01/21/03, selected changes from 3.4.0:
* Added support for finding assembly dialect to config
* Redirected ISA extension output in config
* Added x86-64 support to config
* Added machinery so Level 1 kernels may be in assembly
* Miscellaneous x86 Level 1 speedups
* Assembly GEMM kernels improving performance for:
- x86-64 SSE2, all precisions (85% of peak for real, 83-84 for complex)
- SSE2 for Pentium 4, double real and complex
- Pentium III, all precisions
- UltraSparc, big boost for single precision
ATLAS 3.4.2 released 08/19/03, bugfix release.
ATLAS 3.4.1 released 06/17/02, bugfix release.
ATLAS 3.4.0 released 05/11/02, selected changes from 3.2.1:
* Optimization of Level 1 BLAS
* Additional architecture-specific support:
- OS X and AltiVec support
- IA64 prefetch
- Julian Ruhe's Athlon kernel boosts performance to ~80% of peak
* New LAPACK routines:
- xTRTRI
- XGETRI
- XPOTRI
- xLAUUM
* User callable info function ATL_buildinfo()
* User callable sanity check
* Numerous small speedups and error corrections, see below for details
ATLAS 3.3.15, changes from 3.3.14:
* Fixed PPCG4 arch defaults
* Made it so Linux_21164 does not use GOTO gemm
* Fixed config hang when using Solaris make
* Relaxed too-strict residual tests in lapack testers
* Updated atlas_contrib to point at SourceForge rather than atlas-comm
* Fixed error in no-copy case of aliased gemm (SSE&3DNOW [s,c]TRMM/TRSM)
* Fixed GETRI workspace query
ATLAS 3.3.14, changes from 3.3.13:
* Got rid of duplicate ger and gemv symbols in libatlas
ATLAS 3.3.13, changes from 3.3.12:
* Bug fixes release:
- error in dsdot tester
- g77 flags for compiler error on Itanium
- Error in emit_mm (K cleanup)
- Error in threaded syrk
- Error in Ultra5/10 arch defaults
ATLAS 3.3.12, changes from 3.3.11:
* Bug fixes, including:
- Error in Level 1 tester
- Error in Level 1 routine
- Error in threaded SYMM
- Error in fc.c
* Addition of ATLAS/doc/atlas_devel.ps, with description of how to use
the ATLAS tester.
ATLAS 3.3.11, changes from 3.3.10:
* With Peter's extension to Julian's Athlon code, 80% of peak on all
precisions, providing massively improved Athlon performance
* Additional arch defaults, and config changes
ATLAS 3.3.10, changes from 3.3.9:
* Boatload of bug fixes
* Applied Goto's Linux patch
* New arch defaults
ATLAS 3.3.9, changes from 3.3.8:
* Slightly improved [Z,D]GEMM on PIIISSE1 (prefetched kernels)
* Slightly improved DGEMM kernel for Athlon
* Updated ATLAS/tune/blas/[gemv,ger] to match other levels
- All kernels now have ID
- All kernels can now extend line and give compiler and flags
- If compiler line is given as +, get default compiler with added flags
(useful for changing prefetch distances, etc)
- gcc sub is done, as for other levels
- basic infrastructure for xccobj is in place (untested)
* SYMV update
- SYMV now tuned seperately from GEMV
- Slightly improved GetPartSYMV
ATLAS 3.3.8, changes from 3.3.7:
* Addition of Julian Ruhe's double precision Athlon kernel
* Addition of sanity_test build check
* Addition of LAPACK routines xGETRI & xPOTRI (row & col-major versions)
* Addition of recursive version of LAPACK routine xLAUUM
* Ability to tune xROT
* Bunch of bug fixes.
ATLAS 3.3.7, changes from 3.3.6:
* Bug fix release:
- AltiVec support had been messed up since change to CVS at 3.3.3
- Fix in CacheEdge printing of ATL_buildinfo
ATLAS 3.3.6, changes from 3.3.5:
* Peter Soendergaard's recursive TRTRI now built into lapack lib.
* Version and build informational routine, ATL_buildinfo
* Config supports avoiding gcc 3.0 on x86 archs, whenever possible
ATLAS 3.3.5, changes from 3.3.4:
* Removes dummy TRTRI from lapack lib
* Improves IA64 complex gemm performance (removes prefetching)
ATLAS 3.3.4, changes from 3.3.3:
* Bug fix release, fixing P4 and Athlon archs.
ATLAS 3.3.3, changes from 3.3.2:
* First release based on SourceForge CVS, rather than my home area
* IA64 prefetch added, speeding up all levels
ATLAS 3.3.2, changes from 3.3.1:
* Index files for user-contributed GEMM kernels take ID parameter
* Updated ATLAS/doc/atlas_contrib.ps to include changed GEMM index and
ability to tune Level 1
* Added OS X support to config
* Added AltiVec support to ATLAS, speedup up all precisions, all levels
* Bug fixes for Level 1 tuning
ATLAS 3.3.1, changes from 3.3.0:
* Tuning and kernel contribution for Level 1
* Level 1 tuned decently well for Athlon classic
ATLAS 3.3.0, changes from stable:
* Camm & Peter's SSE2 GEMM kernel
* Small-case LU & Cholesky speedup
* Complex TRSM speedup
ATLAS 3.2.1, released 03/23/01, bugfix release.
ATLAS 3.2 (stable), released 12/20/00. The highlights of
changes from v3.0Beta are:
** SMP support via posix threads for Level 3 BLAS
** Addition of infrastructure for contribution of kernels, thus allowing:
** SSE support
** 3DNow! support
** Speedups on ev6x, ev5x, UltraSparcs, IA64, PowerPC archs
** Level 1 BLAS tester/timer added
** Additional OS and architectural support
** Bug fixes and misc. speedups
ATLAS version 3.0Beta (stable), released December 1999. The highlights of
changes from v2.0 are:
** ATLAS now supplies complete BLAS, although some level 1 and 2 BLAS not
fully optimized on all architectures
** Some LAPACK routines explicitly supported (LU, Cholesky and related
routines)
** Standard C and Fortran77 APIs for all BLAS and provided LAPACK routines;
C routines support both row- & column-major access
** Improved small-case GEMM performance made possible by code generator that
can generate all transpose cases (and thus avoid data copy), with
associated speed boost in many Level 3 BLAS routines.
** Support for complex matrix multiplication without copying user data
** Support for additional looping structures for complex GEMM, providing
better performance and reducing memory usage for many cases
ATLAS version 2.0, released February 1999. The highlights of changes
from 1.1 are:
** Support for all 4 types/precisions
** All Level 3 BLAS routines now supported
** Fortran77 is not required for installation
** Install & configure steps are now automated & logged
** Timer/tester for all Level 3 BLAS now included
** C interface to BLAS supported, and tester provided
** Improved small-case matrix multiply performance
ATLAS version 1.0, released September 1998. The highlights of changes
from version 0.1 are:
** Support for entire real Level 3 BLAS via the Superscalar gemm-based
BLAS (written in Fortran77)
** Improved matmul generator, including support for explicit
register blocking in GEMM
First ATLAS release, version 0.1, released December 1997. Provided:
** Optimized, real matrix multiplication
** Real GEMM tester/timer
|