Граф коммитов

166 Коммитов

Автор SHA1 Сообщение Дата
Mark Gottscho 49044d5aff Minor build script update on Windows to match Linux version. 2015-02-04 12:44:53 -08:00
Mark Gottscho c82b155280 Quick fix so that binaries will be xmem on GNU/Linux and xmem.exe on Windows. Also, README now shows the latest usage info. 2015-02-04 12:36:29 -08:00
Mark Gottscho f2c9510cc6 Changed sequential and random access modes for throughput benchmarks to be run-time options. Also changed some ways the configuration is parsed from the user, and made some printouts mandatory regardless of the verbosity option. 2015-02-04 12:29:51 -08:00
Mark Gottscho 449a959cc4 Build datetime for Windows. However, to make this compile faster need to make cl.exe build each file at a time, otherwise every incremental build starts from scratch. 2015-02-03 17:57:56 -08:00
Mark Gottscho 4a80ccfa80 Added feature to insert actual build datetime into each Linux build. Have to do for Windows as well. 2015-02-03 16:19:03 -08:00
Mark Gottscho ee6c6b61e8 Added runtime verbosity operation instead of compile-time. Also changed BenchmarkManager to not use a laundry list of constructor arguments but instead use the Configurator object. 2015-02-03 00:55:12 -08:00
Bikash Sharma 34666d0b77 Merge pull request #5 from nanocad-lab/master
Converted a bunch of compile-time options to run-time options
2015-02-02 12:39:27 -08:00
Mark Gottscho 9ac41c9796 Improved input argument error handling to be more sane. 2015-01-29 19:24:54 -08:00
Mark Gottscho 37fa69a93c Made chunk sizes a run-time option rather than a compile-time option. However, I have not yet instituted checks for CPU incompatibility. Right now if you run this on a machine that does not support AVX, it may crash with illegal instructions. 2015-01-29 18:51:12 -08:00
Mark Gottscho 0f60c32b97 Changed a Windows compiler flag to supress warning C4101. Also bugfix in common.h that I had recently introduced with some preprocessor macros. Finally, disabled USE_LARGE_PAGES by default to make Windows/Linux fair. 2015-01-28 19:12:59 -08:00
Mark Gottscho 9693c2bd8b Changed NUMA option from compile-time to run-time. 2015-01-28 15:53:15 -08:00
Mark Gottscho 7c19b2281e Changed multithreading from compile-time option to a new runtime option, where the user can specify the number of worker threads to use. 2015-01-28 14:39:52 -08:00
Mark Gottscho 35d90dc242 Segfault fix on reverse stride 16 sequential write word 256. 2015-01-28 12:03:28 -08:00
Bikash Sharma 57b79ddbdb Merge pull request #4 from nanocad-lab/master
Updated to 1.2.02
2015-01-28 09:17:18 -08:00
Mark Gottscho bf84406fe0 Minor fixes to prevent Windows builds from using strides greater than 1 for now. Also get segfaults on GNU/Linux for stride -16 256-bit words. 2015-01-27 20:44:03 -08:00
Mark Gottscho dd0abeee09 Minor update, added build date and time to welcome message when running X-Mem. 2015-01-27 20:15:02 -08:00
Mark Gottscho 800af3ff81 Added Stride16 versions of dummy loops. This is a major revision, v1.2. 2015-01-27 19:50:34 -08:00
Mark Gottscho e3fb652ca0 Implemented Stride16 throughput benchmarks for GNU/Linux. 2015-01-27 19:41:26 -08:00
Mark Gottscho 9c8da6e5c9 Stride8 throughput benchmarks implemented on GNU/Linux. 2015-01-27 19:19:32 -08:00
Mark Gottscho 7fadd7d0ef Implemented dummy loops for benchmark kernels on Stride4. This was supposed to have been done in the last commit. 2015-01-27 19:07:17 -08:00
Mark Gottscho 02f9b08450 Implemented stride-4 throughput benchmarks for GNU/Linux. Also squashed some annoying gcc warnings regarding some of the benchmark kernels. It should now build on GNU/Linux without any warnings or errors. 2015-01-27 18:56:16 -08:00
Mark Gottscho ecad967746 Couple bugfixes in unroll length for Linux throughput benchmarks. Also implemented sequential and stride-2 throughput benchmarks for 128-bit words on Linux. 2015-01-27 15:40:04 -08:00
Bikash Sharma 6cec96e52a Merge pull request #3 from nanocad-lab/master
Version 1.1: Completed (potentially buggy) Linux port
2015-01-26 21:14:42 -08:00
Mark Gottscho 9b0f9e10d6 This is a major revision 1.1. X-Mem now builds and runs on both Windows and GNU/Linux. The results I am getting on Linux for 256-bit sequential multithreaded reads is suspect, however. 2015-01-23 17:58:24 -08:00
Mark Gottscho 17cbe6db1e Disabled USE_LARGE_PAGES support for GNU/Linux for now, for two reasons. First, I use libhugetlbfs since Linux does not have very good support for large pages, but this library does not expose NUMA-aware functionality. Second, I get segmentation faults if I try to use ThroughputBenchmark on anything larger than a single large page. I also removed g++ flags for AVX2 instruction set, which was causing the code not to run on my Ivy Bridge machine (obviously, since AVX2 is Haswell and newer only). Fortunately, I am not needing any AVX2 instructions to do 256-bit memory operations so this is OK for now. 2015-01-23 14:29:51 -08:00
Mark Gottscho 7e134487fc Bugfix in Runnable destructor on Linux. 2015-01-23 11:15:04 -08:00
Mark Gottscho 8d9e816030 Implemented large/huge pages for GNU/Linux build. However, it appears that libhugetlbfs and hugetlbfs in general is not NUMA-aware...so currently the benchmark memory allocations with USE_LARGE_PAGES on Linux are not guaranteed to use NUMA correctly. This is not an issue on single-node systems, however. Also fixed a bug with converting CPU numbers in a NUMA node using libnuma that was causing segmentation faults. 2015-01-23 11:05:44 -08:00
Mark Gottscho 300075dc4c Finished implementing Linux system configuration part, where we learn number of CPUs, NUMA configuration, etc. Also started adding support for large pages on Linux via libhugetlbfs, but this does not work yet. 2015-01-22 19:37:45 -08:00
Bikash Sharma 22a7a7a111 Merge pull request #2 from nanocad-lab/master
Updates over the weekend: continued Linux port
2015-01-19 10:53:50 -08:00
Mark Gottscho f95ccdc897 Bugfixes for Windows version. 2015-01-18 19:12:34 -08:00
Mark Gottscho a4d6244f74 Merging Windows implementation of query_sys_config() into rest of code. Also changed all references to Unix builds to GNU/Linux only for now. 2015-01-18 18:20:43 -08:00
Mark Gottscho 9fadc0ab16 Porting init process of querying system information to Linux. Actually it is quite broken and band-aid status right now. Also, on Linux, ThroughputBenchmark segfaults and LatencyBenchmark crashes with an illegal instruction. 2015-01-17 16:27:00 -08:00
Mark Gottscho d2a4c5f437 Merge branch 'master' of dfm.ee.ucla.edu:/w/nanocad.00/master_projects/X-Mem 2015-01-17 16:22:25 -08:00
Mark Gottscho aaf39cbd5b Porting the init sequence for querying system information to Linux. Right now it is in a rough and bandaid shape. Also the program segfaults in ThroughputBenchmark and crashes on illegal instruction in LatencyBenchmark for Linux. 2015-01-17 16:21:41 -08:00
Mark Gottscho 377a73ed61 Squashed a small Windows compile-time bug introduced by Unix porting efforts. 2015-01-16 18:35:35 -08:00
Mark Gottscho 439f11eec8 Finished superficially porting X-Mem to Linux. It compiles and links correctly now but segfaults when you attempt to run a benchmark. There are definitely some things that I avoid porting, such as querying generic system information in the beginning. I also will need to disassemble compiled benchmarks and see what happens. 2015-01-16 18:21:13 -08:00
Mark Gottscho 00d6ec64a4 Several changes. (1) Removed all Visual Studio project files. The build on Windows and Unix is now completely managed with SCons. (2) Fixed Unix documentation build script. (3) Continued porting of source code to Unix. 2015-01-16 15:52:28 -08:00
Bikash Sharma a6cd73a18a Merge pull request #1 from nanocad-lab/master
Mark's updates since original MS GitHub release
2015-01-15 08:41:49 -08:00
Mark Gottscho c990a2f752 Renamed Visual Studio project filters as they will be deleted in the next major revision. We should no longer require them, and in the future the SCons build script on Windows should automatically generate Visual Studio project files if needed. 2015-01-14 11:35:55 -08:00
Mark Gottscho bbab32f26f Updates to README to better describe prerequisites and build process. 2015-01-14 11:32:55 -08:00
Mark Gottscho 9763730dad Verified correct build on Windows 2015-01-10 18:48:25 -08:00
Mark Gottscho 1be46bf8a0 Further porting work to Unix. Unfortunately, it does not look like NUMA+large pages will be possible on Linux.. need to investigate this further. If this is in fact the case, Linux performance may suffer compared to Windows. 2015-01-10 18:46:17 -08:00
Mark Gottscho 508e55ce01 Windows build fixes 2015-01-10 17:51:05 -08:00
Mark Gottscho da5e9bb613 Continued updates to make a Unix port. Untested still, have to make sure it still works with Windows. 2015-01-10 16:57:29 -08:00
Mark Gottscho c2e76e84df Fixed line endings to be consistently Unix-style throughout X-Mem project. 2015-01-10 13:25:34 -08:00
Mark Gottscho d0c13277c8 Fixes to bugs introduced by untested Unix port of Thread class, so that things build and run correctly on Windows still 2015-01-10 13:17:56 -08:00
Mark Gottscho 146046bf33 Ported Thread class to Unix, but untested. At least it compiles.. 2015-01-10 12:58:06 -08:00
Mark Gottscho a950ddcaf0 Fixes 2015-01-10 00:30:57 -08:00
Mark Gottscho a6a8d462eb Added Unix port to some basic features in Benchmark.h, Runnable.h, and common.h. Untested beyond fixing compiler errors. 2015-01-09 23:47:40 -08:00
Mark Gottscho 7b1c4ef08c Fixed line endings to Unix-style 2015-01-09 22:58:31 -08:00