summaryrefslogtreecommitdiff
path: root/gcell/apps
diff options
context:
space:
mode:
Diffstat (limited to 'gcell/apps')
-rw-r--r--gcell/apps/.gitignore12
-rw-r--r--gcell/apps/Makefile.am49
-rw-r--r--gcell/apps/benchmark_dma.cc275
-rw-r--r--gcell/apps/benchmark_nop.cc165
-rw-r--r--gcell/apps/benchmark_roundtrip.cc242
-rwxr-xr-xgcell/apps/gen_script.py119
-rwxr-xr-xgcell/apps/plot_speedup.py122
-rw-r--r--gcell/apps/results-071223126
-rwxr-xr-xgcell/apps/split_and_avg_results.py101
-rw-r--r--gcell/apps/spu/.gitignore8
-rw-r--r--gcell/apps/spu/Makefile.am34
-rw-r--r--gcell/apps/spu/benchmark_procs.c72
-rw-r--r--gcell/apps/test_all.cc43
13 files changed, 0 insertions, 1368 deletions
diff --git a/gcell/apps/.gitignore b/gcell/apps/.gitignore
deleted file mode 100644
index b80e1a92c..000000000
--- a/gcell/apps/.gitignore
+++ /dev/null
@@ -1,12 +0,0 @@
-/Makefile
-/Makefile.in
-/.la
-/.lo
-/.deps
-/.libs
-/*.la
-/*.lo
-/test_all
-/benchmark_nop
-/benchmark_dma
-/benchmark_roundtrip
diff --git a/gcell/apps/Makefile.am b/gcell/apps/Makefile.am
deleted file mode 100644
index c3a2092a3..000000000
--- a/gcell/apps/Makefile.am
+++ /dev/null
@@ -1,49 +0,0 @@
-#
-# Copyright 2007,2008,2009 Free Software Foundation, Inc.
-#
-# This file is part of GNU Radio
-#
-# GNU Radio is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# GNU Radio is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-
-include $(top_srcdir)/Makefile.common
-
-SUBDIRS = spu .
-
-AM_CPPFLAGS = $(DEFINES) $(GCELL_INCLUDES) $(CPPUNIT_INCLUDES) $(WITH_INCLUDES)
-
-GCELL_QA_LA = $(top_builddir)/gcell/lib/libgcell-qa.la
-
-TESTS = test_all
-
-
-bin_PROGRAMS = \
- test_all \
- benchmark_dma \
- benchmark_nop \
- benchmark_roundtrip
-
-
-test_all_SOURCES = test_all.cc
-test_all_LDADD = $(GCELL_QA_LA) $(GCELL_LA)
-
-benchmark_dma_SOURCES = benchmark_dma.cc
-benchmark_dma_LDADD = spu/benchmark_procs $(GCELL_LA)
-
-benchmark_nop_SOURCES = benchmark_nop.cc
-benchmark_nop_LDADD = spu/benchmark_procs $(GCELL_LA)
-
-benchmark_roundtrip_SOURCES = benchmark_roundtrip.cc
-benchmark_roundtrip_LDADD = spu/benchmark_procs $(GCELL_LA)
diff --git a/gcell/apps/benchmark_dma.cc b/gcell/apps/benchmark_dma.cc
deleted file mode 100644
index bc3b3f328..000000000
--- a/gcell/apps/benchmark_dma.cc
+++ /dev/null
@@ -1,275 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2007,2008,2010 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#if defined(HAVE_CONFIG_H)
-#include <config.h>
-#endif
-#include <gcell/gc_job_manager.h>
-#include <boost/date_time/posix_time/posix_time_types.hpp>
-#include <getopt.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <boost/scoped_array.hpp>
-#include <assert.h>
-
-// handle to embedded SPU executable that contains benchmark routines
-// (The name of the variable (benchmark_procs) is the name of the spu executable.)
-extern spe_program_handle_t benchmark_procs;
-
-static gc_proc_id_t gcp_benchmark_udelay = GCP_UNKNOWN_PROC;
-
-#define BENCHMARK_PUT 0x1
-#define BENCHMARK_GET 0x2
-#define BENCHMARK_GET_PUT (BENCHMARK_PUT|BENCHMARK_GET)
-
-
-#if 0
-static bool
-power_of_2_p(unsigned long x)
-{
- int nbits = sizeof(x) * 8;
- for (int i = 0; i < nbits; i++)
- if (x == (1UL << i))
- return true;
-
- return false;
-}
-#endif
-
-static void
-init_jd(gc_job_desc *jd, unsigned int usecs,
- unsigned char *getbuf, unsigned char *putbuf, size_t buflen,
- int getput_mask)
-{
- jd->proc_id = gcp_benchmark_udelay;
- jd->input.nargs = 1;
- jd->input.arg[0].u32 = usecs;
- jd->output.nargs = 0;
-
- switch(getput_mask & BENCHMARK_GET_PUT){
-
- case BENCHMARK_GET:
- jd->eaa.nargs = 1;
- jd->eaa.arg[0].direction = GCJD_DMA_GET;
- jd->eaa.arg[0].ea_addr = ptr_to_ea(getbuf);
- jd->eaa.arg[0].get_size = buflen;
- break;
-
- case BENCHMARK_PUT:
- jd->eaa.nargs = 1;
- jd->eaa.arg[0].direction = GCJD_DMA_PUT;
- jd->eaa.arg[0].ea_addr = ptr_to_ea(putbuf);
- jd->eaa.arg[0].put_size = buflen;
- break;
-
- case BENCHMARK_GET_PUT:
- jd->eaa.nargs = 2;
- jd->eaa.arg[0].direction = GCJD_DMA_GET;
- jd->eaa.arg[0].ea_addr = ptr_to_ea(getbuf);
- jd->eaa.arg[0].get_size = buflen;
- jd->eaa.arg[1].direction = GCJD_DMA_PUT;
- jd->eaa.arg[1].ea_addr = ptr_to_ea(putbuf);
- jd->eaa.arg[1].put_size = buflen;
- break;
- }
-}
-
-static void
-run_test(unsigned int nspes, unsigned int usecs, unsigned int dma_size, int getput_mask)
-{
- using namespace boost::posix_time;
-
- static const int64_t TOTAL_SIZE_DMA = 5LL << 30;
- static const int NJDS = 64;
- unsigned int njobs = (unsigned int)(TOTAL_SIZE_DMA / dma_size);
- //unsigned int njobs = NJDS * 16;
- unsigned int nsubmitted = 0;
- unsigned int ncompleted = 0;
- gc_job_desc *all_jds[NJDS];
- gc_job_desc *jds[2][NJDS];
- unsigned int njds[2];
- unsigned int ci; // current index
- bool done[NJDS];
-
- static const unsigned int BUFSIZE = (32 << 10) * NJDS;
- unsigned char *getbuf = new unsigned char[BUFSIZE];
- boost::scoped_array<unsigned char> _getbuf(getbuf);
- unsigned char *putbuf = new unsigned char[BUFSIZE];
- boost::scoped_array<unsigned char> _putbuf(putbuf);
- int gbi = 0;
-
- // touch all pages to force allocation now
- for (unsigned int i = 0; i < BUFSIZE; i += 4096){
- getbuf[i] = 0;
- putbuf[i] = 0;
- }
-
- gc_jm_options opts;
- opts.program_handle = gc_program_handle_from_address(&benchmark_procs);
- opts.nspes = nspes;
- //opts.enable_logging = true;
- //opts.log2_nlog_entries = 13;
- gc_job_manager_sptr mgr = gc_make_job_manager(&opts);
-
- if ((gcp_benchmark_udelay = mgr->lookup_proc("benchmark_udelay")) == GCP_UNKNOWN_PROC){
- fprintf(stderr, "lookup_proc: failed to find \"benchmark_udelay\"\n");
- return;
- }
-
- // allocate and init all job descriptors
- for (int i = 0; i < NJDS; i++){
- if (gbi + dma_size > BUFSIZE)
- gbi = 0;
-
- all_jds[i] = mgr->alloc_job_desc();
- if (all_jds[i] == 0){
- fprintf(stderr, "alloc_job_desc() returned 0\n");
- return;
- }
- init_jd(all_jds[i], usecs, &getbuf[gbi], &putbuf[gbi], dma_size, getput_mask);
- gbi += dma_size;
- }
-
- for (int iter = 0; iter < 1; iter++){
-
- ptime t_start(microsec_clock::universal_time());
-
- nsubmitted = 0;
- ncompleted = 0;
-
- ci = 0;
- njds[0] = 0;
- njds[1] = 0;
-
- // submit the first batch
- for (int i = 0; i < NJDS; i++){
- if (mgr->submit_job(all_jds[i])){
- jds[ci][njds[ci]++] = all_jds[i];
- nsubmitted++;
- }
- else {
- printf("submit_job(jds[%d]) failed, status = %d\n",
- i, all_jds[i]->status);
- }
- }
-
- while (ncompleted < njobs){
- njds[ci^1] = 0;
- int n = mgr->wait_jobs(njds[ci], jds[ci], done, GC_WAIT_ANY);
- // printf("%2d\n", n);
- if (n < 0){
- fprintf(stderr, "mgr->wait_jobs failed\n");
- break;
- }
- for (unsigned int i = 0; i < njds[ci]; i++){
- if (!done[i]){ // remember for next iteration
- jds[ci^1][njds[ci^1]++] = jds[ci][i];
- }
- else {
- ncompleted++;
- if (jds[ci][i]->status != JS_OK){
- printf("js_status = %d, job_id = %d, ncompleted = %d\n",
- jds[ci][i]->status, jds[ci][i]->sys.job_id, ncompleted);
- }
- if (nsubmitted < njobs){ // submit another one
- if (mgr->submit_job(jds[ci][i])){
- jds[ci^1][njds[ci^1]++] = jds[ci][i]; // remember for next iter
- nsubmitted++;
- }
- else {
- printf("submit_job(jds[%d]) failed, status = %d\n",
- i, jds[ci][i]->status);
- }
- }
- }
- }
- ci ^= 1; // toggle current
- }
-
- // stop timing
- ptime t_stop(microsec_clock::universal_time());
-
- double delta = (t_stop - t_start).total_microseconds() * 1e-6;
- printf("nspes: %2d udelay: %4d elapsed_time: %7.3f dma_size: %5d dma_throughput: %7.3e\n",
- mgr->nspes(), usecs, delta, dma_size,
- (double) njobs * dma_size / delta * (getput_mask == BENCHMARK_GET_PUT ? 2.0 : 1.0));
-
- }
-}
-
-static void
-usage()
-{
- fprintf(stderr, "usage: benchmark_dma [-p] [-g] [-n <nspes>] [-u <udelay>] [-s <dma_size>]\n");
- fprintf(stderr, " you must specify one or both of -p (put) and -g (get)\n");
-}
-
-
-int
-main(int argc, char **argv)
-{
- unsigned int nspes = 0;
- unsigned int usecs = 0;
- unsigned int dma_size = 32 << 10;
- int getput_mask = 0;
- int ch;
-
- while ((ch = getopt(argc, argv, "n:u:s:pg")) != EOF){
- switch(ch){
- case 'n':
- nspes = strtol(optarg, 0, 0);
- break;
-
- case 'u':
- usecs = strtol(optarg, 0, 0);
- break;
-
- case 's':
- dma_size = strtol(optarg, 0, 0);
- if (dma_size == 0){
- fprintf(stderr, "-s <dma_size> must be > 0\n");
- return 1;
- }
- break;
-
- case 'p':
- getput_mask |= BENCHMARK_PUT;
- break;
-
- case 'g':
- getput_mask |= BENCHMARK_GET;
- break;
-
- case '?':
- default:
- usage();
- return 1;
- }
- }
-
- if (getput_mask == 0){
- usage();
- return 1;
- }
-
- run_test(nspes, usecs, dma_size, getput_mask);
- return 0;
-}
diff --git a/gcell/apps/benchmark_nop.cc b/gcell/apps/benchmark_nop.cc
deleted file mode 100644
index a27373db4..000000000
--- a/gcell/apps/benchmark_nop.cc
+++ /dev/null
@@ -1,165 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2007,2008,2010 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#if defined(HAVE_CONFIG_H)
-#include <config.h>
-#endif
-#include <gcell/gc_job_manager.h>
-#include <boost/date_time/posix_time/posix_time_types.hpp>
-#include <getopt.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-// handle to embedded SPU executable that contains benchmark routines
-// (The name of the variable (benchmark_procs) is the name of the spu executable.)
-extern spe_program_handle_t benchmark_procs;
-
-static gc_proc_id_t gcp_benchmark_udelay = GCP_UNKNOWN_PROC;
-
-static void
-init_jd(gc_job_desc *jd, unsigned int usecs)
-{
- jd->proc_id = gcp_benchmark_udelay;
- jd->input.nargs = 1;
- jd->input.arg[0].u32 = usecs;
- jd->output.nargs = 0;
- jd->eaa.nargs = 0;
-}
-
-static void
-run_test(unsigned int nspes, unsigned int usecs, int njobs)
-{
- using namespace boost::posix_time;
-
- static const int NJDS = 64;
- int nsubmitted = 0;
- int ncompleted = 0;
- gc_job_desc *all_jds[NJDS];
- gc_job_desc *jds[2][NJDS];
- unsigned int njds[2];
- unsigned int ci; // current index
- bool done[NJDS];
-
- gc_jm_options opts;
- opts.program_handle = gc_program_handle_from_address(&benchmark_procs);
- opts.nspes = nspes;
- opts.gang_schedule = true;
- gc_job_manager_sptr mgr = gc_make_job_manager(&opts);
-
- if ((gcp_benchmark_udelay = mgr->lookup_proc("benchmark_udelay")) == GCP_UNKNOWN_PROC){
- fprintf(stderr, "lookup_proc: failed to find \"benchmark_udelay\"\n");
- return;
- }
-
- // allocate and init all job descriptors
- for (int i = 0; i < NJDS; i++){
- all_jds[i] = mgr->alloc_job_desc();
- init_jd(all_jds[i], usecs);
- }
-
- ptime t_start(microsec_clock::universal_time());
-
- ci = 0;
- njds[0] = 0;
- njds[1] = 0;
-
- // submit the first batch
- for (int i = 0; i < NJDS; i++){
- if (mgr->submit_job(all_jds[i])){
- jds[ci][njds[ci]++] = all_jds[i];
- nsubmitted++;
- }
- else {
- printf("submit_job(jds[%d]) failed, status = %d\n",
- i, all_jds[i]->status);
- }
- }
-
- while (ncompleted < njobs){
- njds[ci^1] = 0;
- int n = mgr->wait_jobs(njds[ci], jds[ci], done, GC_WAIT_ANY);
- // printf("%2d\n", n);
- if (n < 0){
- fprintf(stderr, "mgr->wait_jobs failed\n");
- break;
- }
- for (unsigned int i = 0; i < njds[ci]; i++){
- if (!done[i]){ // remember for next iteration
- jds[ci^1][njds[ci^1]++] = jds[ci][i];
- }
- else {
- ncompleted++;
- // printf("ncompleted = %7d\n", ncompleted);
- if (nsubmitted < njobs){ // submit another one
- if (mgr->submit_job(jds[ci][i])){
- jds[ci^1][njds[ci^1]++] = jds[ci][i]; // remember for next iter
- nsubmitted++;
- }
- else {
- printf("submit_job(jds[%d]) failed, status = %d\n",
- i, jds[ci][i]->status);
- }
- }
- }
- }
- ci ^= 1; // toggle current
- }
-
- // stop timing
- ptime t_stop(microsec_clock::universal_time());
- double delta = (t_stop - t_start).total_microseconds() * 1e-6;
- printf("nspes: %2d udelay: %4d elapsed_time: %7.3f njobs: %g speedup: %6.3f\n",
- mgr->nspes(), usecs, delta, (double) njobs,
- njobs * usecs * 1e-6 / delta);
-}
-
-int
-main(int argc, char **argv)
-{
- unsigned int nspes = 0;
- unsigned int usecs = 0;
- int njobs = 500000;
- int ch;
-
- while ((ch = getopt(argc, argv, "n:u:N:")) != EOF){
- switch(ch){
- case 'n':
- nspes = strtol(optarg, 0, 0);
- break;
-
- case 'u':
- usecs = strtol(optarg, 0, 0);
- break;
-
- case 'N':
- njobs = strtol(optarg, 0, 0);
- break;
-
- case '?':
- default:
- fprintf(stderr, "usage: benchmark_nop [-n <nspes>] [-u <udelay>] [-N <njobs>]\n");
- return 1;
- }
- }
-
- run_test(nspes, usecs, njobs);
- return 0;
-}
diff --git a/gcell/apps/benchmark_roundtrip.cc b/gcell/apps/benchmark_roundtrip.cc
deleted file mode 100644
index b994182a8..000000000
--- a/gcell/apps/benchmark_roundtrip.cc
+++ /dev/null
@@ -1,242 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2007,2008,2009,2010 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#if defined(HAVE_CONFIG_H)
-#include <config.h>
-#endif
-#include <gcell/gc_job_manager.h>
-#include <boost/date_time/posix_time/posix_time_types.hpp>
-#include <getopt.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <boost/scoped_array.hpp>
-#include <assert.h>
-
-// handle to embedded SPU executable that contains benchmark routines
-// (The name of the variable (benchmark_procs) is the name of the spu executable.)
-extern spe_program_handle_t benchmark_procs;
-
-static gc_proc_id_t gcp_benchmark_udelay = GCP_UNKNOWN_PROC;
-
-#define BENCHMARK_PUT 0x1
-#define BENCHMARK_GET 0x2
-#define BENCHMARK_GET_PUT (BENCHMARK_PUT|BENCHMARK_GET)
-
-
-#if 0
-static bool
-power_of_2_p(unsigned long x)
-{
- int nbits = sizeof(x) * 8;
- for (int i = 0; i < nbits; i++)
- if (x == (1UL << i))
- return true;
-
- return false;
-}
-#endif
-
-static void
-init_jd(gc_job_desc *jd, unsigned int usecs,
- unsigned char *getbuf, unsigned char *putbuf, size_t buflen,
- int getput_mask)
-{
- jd->proc_id = gcp_benchmark_udelay;
- jd->input.nargs = 1;
- jd->input.arg[0].u32 = usecs;
- jd->output.nargs = 0;
-
- switch(getput_mask & BENCHMARK_GET_PUT){
-
- case BENCHMARK_GET:
- jd->eaa.nargs = 1;
- jd->eaa.arg[0].direction = GCJD_DMA_GET;
- jd->eaa.arg[0].ea_addr = ptr_to_ea(getbuf);
- jd->eaa.arg[0].get_size = buflen;
- break;
-
- case BENCHMARK_PUT:
- jd->eaa.nargs = 1;
- jd->eaa.arg[0].direction = GCJD_DMA_PUT;
- jd->eaa.arg[0].ea_addr = ptr_to_ea(putbuf);
- jd->eaa.arg[0].put_size = buflen;
- break;
-
- case BENCHMARK_GET_PUT:
- jd->eaa.nargs = 2;
- jd->eaa.arg[0].direction = GCJD_DMA_GET;
- jd->eaa.arg[0].ea_addr = ptr_to_ea(getbuf);
- jd->eaa.arg[0].get_size = buflen;
- jd->eaa.arg[1].direction = GCJD_DMA_PUT;
- jd->eaa.arg[1].ea_addr = ptr_to_ea(putbuf);
- jd->eaa.arg[1].put_size = buflen;
- break;
- }
-}
-
-static void
-run_test(unsigned int nspes, unsigned int usecs, unsigned int dma_size,
- int getput_mask, int njobs_at_once)
-{
- using namespace boost::posix_time;
-
- int NJDS = njobs_at_once;
- gc_job_desc *all_jds[NJDS];
- bool done[NJDS];
-
- static const unsigned int BUFSIZE = (32 << 10) * NJDS;
- unsigned char *getbuf = new unsigned char[BUFSIZE];
- boost::scoped_array<unsigned char> _getbuf(getbuf);
- unsigned char *putbuf = new unsigned char[BUFSIZE];
- boost::scoped_array<unsigned char> _putbuf(putbuf);
- int gbi = 0;
-
- // touch all pages to force allocation now
- for (unsigned int i = 0; i < BUFSIZE; i += 4096){
- getbuf[i] = 0;
- putbuf[i] = 0;
- }
-
- gc_jm_options opts;
- opts.program_handle = gc_program_handle_from_address(&benchmark_procs);
- opts.nspes = nspes;
- //opts.enable_logging = true;
- //opts.log2_nlog_entries = 13;
- gc_job_manager_sptr mgr = gc_make_job_manager(&opts);
-
- if ((gcp_benchmark_udelay = mgr->lookup_proc("benchmark_udelay")) == GCP_UNKNOWN_PROC){
- fprintf(stderr, "lookup_proc: failed to find \"benchmark_udelay\"\n");
- return;
- }
-
- // allocate and init all job descriptors
- for (int i = 0; i < NJDS; i++){
- if (gbi + dma_size > BUFSIZE)
- gbi = 0;
-
- all_jds[i] = mgr->alloc_job_desc();
- if (all_jds[i] == 0){
- fprintf(stderr, "alloc_job_desc() returned 0\n");
- return;
- }
- init_jd(all_jds[i], usecs, &getbuf[gbi], &putbuf[gbi], dma_size, getput_mask);
- gbi += dma_size;
- }
-
- int niter = 100000;
- ptime t_start(microsec_clock::universal_time());
-
- for (int iter = 0; iter < niter; iter++){
-
- // submit the jobs
- for (int i = 0; i < NJDS; i++){
- if (!mgr->submit_job(all_jds[i])){
- printf("submit_job(jds[%d]) failed, status = %d\n",
- i, all_jds[i]->status);
- }
- }
-
- int n = mgr->wait_jobs(NJDS, all_jds, done, GC_WAIT_ALL);
- if (n < 0){
- fprintf(stderr, "mgr->wait_jobs failed\n");
- break;
- }
- if (n != NJDS){
- fprintf(stderr, "mgr->wait_jobs returned short count. Expected %d, got %d\n",
- NJDS, n);
- }
- }
-
- // stop timing
- ptime t_stop(microsec_clock::universal_time());
- double delta = (t_stop - t_start).total_microseconds() * 1e-6;
- printf("nspes: %2d udelay: %4d elapsed_time: %7.3f dma_size: %5d dma_throughput: %7.3e round_trip: %gus\n",
- mgr->nspes(), usecs, delta, dma_size,
- (double) NJDS * niter * dma_size / delta * (getput_mask == BENCHMARK_GET_PUT ? 2.0 : 1.0),
- delta / niter * 1e6);
-}
-
-static void
-usage()
-{
- fprintf(stderr, "usage: benchmark_dma [-p] [-g] [-n <nspes>] [-u <udelay>] [-s <dma_size>] [-N <njobs_at_a_time>]\n");
- fprintf(stderr, " you must specify one or both of -p (put) and -g (get)\n");
-}
-
-
-int
-main(int argc, char **argv)
-{
- unsigned int nspes = 0;
- unsigned int usecs = 0;
- unsigned int dma_size = 32 << 10;
- int njobs_at_once = -1;
- int getput_mask = 0;
- int ch;
-
- while ((ch = getopt(argc, argv, "n:u:s:pgN:")) != EOF){
- switch(ch){
- case 'n':
- nspes = strtol(optarg, 0, 0);
- break;
-
- case 'u':
- usecs = strtol(optarg, 0, 0);
- break;
-
- case 'N':
- njobs_at_once = strtol(optarg, 0, 0);
- break;
-
- case 's':
- dma_size = strtol(optarg, 0, 0);
- if (dma_size == 0){
- fprintf(stderr, "-s <dma_size> must be > 0\n");
- return 1;
- }
- break;
-
- case 'p':
- getput_mask |= BENCHMARK_PUT;
- break;
-
- case 'g':
- getput_mask |= BENCHMARK_GET;
- break;
-
- case '?':
- default:
- usage();
- return 1;
- }
- }
-
- if (njobs_at_once < 0)
- njobs_at_once = nspes;
-
- if (getput_mask == 0){
- usage();
- return 1;
- }
-
- run_test(nspes, usecs, dma_size, getput_mask, njobs_at_once);
- return 0;
-}
diff --git a/gcell/apps/gen_script.py b/gcell/apps/gen_script.py
deleted file mode 100755
index 2ad0fb78e..000000000
--- a/gcell/apps/gen_script.py
+++ /dev/null
@@ -1,119 +0,0 @@
-#!/usr/bin/env python
-
-import sys
-import time
-import os
-
-from optparse import OptionParser
-
-
-def get_svn_rev():
- try:
- f = os.popen("svn info", "r")
- lines = f.readlines()
- f.close()
- except:
- return "unk"
-
- svn_rev = "unk"
- for l in lines:
- if l.startswith('Revision:'):
- t = l.rstrip()
- svn_rev = t.split()[-1]
- return svn_rev
-
-def is_ps3():
- try:
- f = open("/proc/cpuinfo")
- s = f.read()
- except:
- return False
-
- return s.find('PS3') != -1
-
-
-def main():
-
- def make_fname(suffix):
- return basename + '.' + suffix
-
- max_spes_default = 16
- if is_ps3():
- max_spes_default = 6
-
- parser = OptionParser()
- parser.add_option("-m", "--max-spes", type="int", default=max_spes_default,
- metavar="NSPES",
- help="maximum number of SPEs to use [default=%default]")
- parser.add_option("", "--min-spes", type="int", default=1,
- metavar="NSPES",
- help="minimum number of SPEs to use [default=%default]")
- parser.add_option("-p", "--oprofile", action="store_true", default=False,
- help="emit oprofile commands")
- parser.add_option("-t", "--tag", default=None,
- help="additional goodie in generated filenames")
- (options, args) = parser.parse_args()
- if len(args) != 0:
- parser.print_help()
- sys.exit(1)
-
- #FIXME to use git now
- svn_rev = get_svn_rev()
-
- os.environ['TZ'] = 'PST8PDT' # always pacific
- time.tzset()
-
- tag = ''
- if options.tag:
- tag = '-' + options.tag
-
- basename = 'R-%s%s-%s' % (svn_rev, tag, time.strftime('%Y%m%d-%H%M'))
-
- base_njobs = int(500e3)
- njobs = {
- 1 : base_njobs,
- 10 : base_njobs,
- 50 : base_njobs,
- 100 : base_njobs,
- 200 : int(base_njobs/2),
- 250 : int(base_njobs/2.5),
- 300 : int(base_njobs/3),
- 400 : int(base_njobs/4),
- 500 : int(base_njobs/5)
- }
-
-
- f_results = make_fname('results')
- f_opreport = make_fname('opreport')
- f_avg = make_fname('avg')
- f_png = make_fname('png')
-
- f = sys.stdout
- f.write("#!/bin/bash\n")
-
- if options.oprofile:
- f.write("opcontrol --stop\n")
- f.write("opcontrol --reset\n")
- f.write("opcontrol --start\n")
-
- f.write("(\n")
-
- for udelay in (10, 50, 100, 200, 300):
- for nspes in range(options.min_spes, options.max_spes+1):
- cmd = "./benchmark_nop -n %d -u %d -N %d\n" % (nspes, udelay, njobs[udelay])
- f.write(cmd)
- f.write(cmd)
-
- f.write(") | tee %s\n" % (f_results,))
-
- if options.oprofile:
- f.write("opcontrol --dump\n")
- f.write("opcontrol --stop\n")
- f.write("opreport -l | head -100 > %s\n" % (f_opreport,))
-
- f.write("./split_and_avg_results.py %s > %s\n" % (f_results, f_avg))
- f.write("./plot_speedup.py %s -o %s\n" % (f_avg, f_png))
-
-
-if __name__ == '__main__':
- main()
diff --git a/gcell/apps/plot_speedup.py b/gcell/apps/plot_speedup.py
deleted file mode 100755
index 37822a73f..000000000
--- a/gcell/apps/plot_speedup.py
+++ /dev/null
@@ -1,122 +0,0 @@
-#!/usr/bin/env python
-
-from optparse import OptionParser
-from pylab import *
-from pprint import pprint
-import os.path
-
-
-def add_entry(d, nspes, speedup, work_incr):
- if d.has_key(work_incr):
- d[work_incr].append((nspes, speedup))
- else:
- d[work_incr] = [(nspes, speedup)]
-
-def parse_file(f):
- d = {}
- for line in f:
- items = [float(x) for x in line.split()]
- # print "items =", items
- nspes = items[0]
- work_incr = int(1e6 * items[1])
- speedup = items[4]
- add_entry(d, nspes, speedup, work_incr)
- return d
-
-
-class plot_data(object):
- def __init__(self, filenames, output_filename):
- self.fig = figure(1, figsize=(8, 6), facecolor='w')
- self.sp = self.fig.add_subplot(1,1,1)
- self.sp.set_xlabel("nspes", fontweight="bold")
- self.sp.set_ylabel("speedup", fontweight="bold")
- self.sp.grid(True)
- # print 'rcParams["legend.fontsize"] =', rcParams["legend.fontsize"]
- rcParams["legend.fontsize"] = 10
-
-
- self.markers = {
- 5 : 'x',
- 10 : 'o',
- 50 : 's',
- 100 : '^',
- 200 : 'D',
- 300 : 'v',
- 400 : '>',
- 500 : 'h'
- }
-
- if len(filenames) == 1:
- f = filenames[0]
- d = parse_file(open(f))
- self.make_single_plot(d, f)
-
- else:
- for f in filenames:
- d = parse_file(open(f))
- self.make_plot(d, f, f == filenames[0])
-
- if output_filename:
- savefig(output_filename)
- else:
- show()
-
-
- def make_single_plot(self, d, filename):
- def style(k):
- return self.markers[k]
-
- tag, ext = os.path.splitext(os.path.basename(filename))
- title(tag)
- keys = d.keys()
- keys.sort()
- keys.reverse()
- for k in keys:
- vlist = d[k] # list of 2-tuples
- xs = [v[0] for v in vlist]
- ys = [v[1] for v in vlist]
- plot(xs, ys, style(k), label="%d us" % (k,))
-
- x = legend(loc=2)
-
- def make_plot(self, d, filename, first):
- def style(k):
- if first:
- return self.markers[k]
- else:
- return 'k' + self.markers[k]
-
- tag, ext = os.path.splitext(os.path.basename(filename))
- keys = d.keys()
- keys.sort()
- keys.reverse()
- for k in keys:
- vlist = d[k] # list of 2-tuples
- xs = [v[0] for v in vlist]
- ys = [v[1] for v in vlist]
- plot(xs, ys, style(k), label="%s %d us" % (tag, k))
-
- x = legend(loc=2)
-
-def main():
- usage="%prog: [options] input_filename..."
- description = "Plot R*.avg files from benchmark_nop.py"
- parser = OptionParser(usage=usage, description=description)
- parser.add_option('-o', '--output', default=None, metavar="FILE",
- help="generate .png file")
- (options, args) = parser.parse_args()
- if len(args) < 1:
- parser.print_help()
- raise SystemExit, 1
-
- filenames = args
- dc = plot_data(filenames, options.output)
-
-
-
-if __name__ == '__main__':
- try:
- main()
- except KeyboardInterrupt:
- pass
-
diff --git a/gcell/apps/results-071223 b/gcell/apps/results-071223
deleted file mode 100644
index 271617121..000000000
--- a/gcell/apps/results-071223
+++ /dev/null
@@ -1,126 +0,0 @@
-nspes: 1 udelay: 1 elapsed_time: 26.117 njobs: 1e+06 us/job: 26.117
-nspes: 1 udelay: 1 elapsed_time: 26.058 njobs: 1e+06 us/job: 26.058
-nspes: 1 udelay: 1 elapsed_time: 26.737 njobs: 1e+06 us/job: 26.737
-nspes: 2 udelay: 1 elapsed_time: 23.585 njobs: 1e+06 us/job: 23.585
-nspes: 2 udelay: 1 elapsed_time: 21.958 njobs: 1e+06 us/job: 21.958
-nspes: 2 udelay: 1 elapsed_time: 21.034 njobs: 1e+06 us/job: 21.034
-nspes: 3 udelay: 1 elapsed_time: 25.819 njobs: 1e+06 us/job: 25.819
-nspes: 3 udelay: 1 elapsed_time: 23.719 njobs: 1e+06 us/job: 23.719
-nspes: 3 udelay: 1 elapsed_time: 21.711 njobs: 1e+06 us/job: 21.711
-nspes: 4 udelay: 1 elapsed_time: 20.210 njobs: 1e+06 us/job: 20.210
-nspes: 4 udelay: 1 elapsed_time: 20.558 njobs: 1e+06 us/job: 20.558
-nspes: 4 udelay: 1 elapsed_time: 20.957 njobs: 1e+06 us/job: 20.957
-nspes: 5 udelay: 1 elapsed_time: 24.571 njobs: 1e+06 us/job: 24.571
-nspes: 5 udelay: 1 elapsed_time: 20.207 njobs: 1e+06 us/job: 20.207
-nspes: 5 udelay: 1 elapsed_time: 21.976 njobs: 1e+06 us/job: 21.976
-nspes: 6 udelay: 1 elapsed_time: 22.601 njobs: 1e+06 us/job: 22.601
-nspes: 6 udelay: 1 elapsed_time: 18.794 njobs: 1e+06 us/job: 18.794
-nspes: 6 udelay: 1 elapsed_time: 19.755 njobs: 1e+06 us/job: 19.755
-nspes: 1 udelay: 5 elapsed_time: 28.047 njobs: 1e+06 us/job: 28.047
-nspes: 1 udelay: 5 elapsed_time: 27.265 njobs: 1e+06 us/job: 27.265
-nspes: 1 udelay: 5 elapsed_time: 27.555 njobs: 1e+06 us/job: 27.555
-nspes: 2 udelay: 5 elapsed_time: 21.130 njobs: 1e+06 us/job: 21.130
-nspes: 2 udelay: 5 elapsed_time: 21.067 njobs: 1e+06 us/job: 21.067
-nspes: 2 udelay: 5 elapsed_time: 21.607 njobs: 1e+06 us/job: 21.607
-nspes: 3 udelay: 5 elapsed_time: 23.712 njobs: 1e+06 us/job: 23.712
-nspes: 3 udelay: 5 elapsed_time: 23.658 njobs: 1e+06 us/job: 23.658
-nspes: 3 udelay: 5 elapsed_time: 25.277 njobs: 1e+06 us/job: 25.277
-nspes: 4 udelay: 5 elapsed_time: 22.264 njobs: 1e+06 us/job: 22.264
-nspes: 4 udelay: 5 elapsed_time: 20.970 njobs: 1e+06 us/job: 20.970
-nspes: 4 udelay: 5 elapsed_time: 21.533 njobs: 1e+06 us/job: 21.533
-nspes: 5 udelay: 5 elapsed_time: 21.504 njobs: 1e+06 us/job: 21.504
-nspes: 5 udelay: 5 elapsed_time: 21.956 njobs: 1e+06 us/job: 21.956
-nspes: 5 udelay: 5 elapsed_time: 21.333 njobs: 1e+06 us/job: 21.333
-nspes: 6 udelay: 5 elapsed_time: 20.639 njobs: 1e+06 us/job: 20.639
-nspes: 6 udelay: 5 elapsed_time: 23.022 njobs: 1e+06 us/job: 23.022
-nspes: 6 udelay: 5 elapsed_time: 22.453 njobs: 1e+06 us/job: 22.453
-nspes: 1 udelay: 10 elapsed_time: 27.780 njobs: 1e+06 us/job: 27.780
-nspes: 1 udelay: 10 elapsed_time: 27.683 njobs: 1e+06 us/job: 27.683
-nspes: 1 udelay: 10 elapsed_time: 26.803 njobs: 1e+06 us/job: 26.803
-nspes: 2 udelay: 10 elapsed_time: 20.878 njobs: 1e+06 us/job: 20.878
-nspes: 2 udelay: 10 elapsed_time: 22.430 njobs: 1e+06 us/job: 22.430
-nspes: 2 udelay: 10 elapsed_time: 20.952 njobs: 1e+06 us/job: 20.952
-nspes: 3 udelay: 10 elapsed_time: 22.752 njobs: 1e+06 us/job: 22.752
-nspes: 3 udelay: 10 elapsed_time: 24.294 njobs: 1e+06 us/job: 24.294
-nspes: 3 udelay: 10 elapsed_time: 23.935 njobs: 1e+06 us/job: 23.935
-nspes: 4 udelay: 10 elapsed_time: 20.437 njobs: 1e+06 us/job: 20.437
-nspes: 4 udelay: 10 elapsed_time: 21.498 njobs: 1e+06 us/job: 21.498
-nspes: 4 udelay: 10 elapsed_time: 20.521 njobs: 1e+06 us/job: 20.521
-nspes: 5 udelay: 10 elapsed_time: 22.704 njobs: 1e+06 us/job: 22.704
-nspes: 5 udelay: 10 elapsed_time: 21.106 njobs: 1e+06 us/job: 21.106
-nspes: 5 udelay: 10 elapsed_time: 22.800 njobs: 1e+06 us/job: 22.800
-nspes: 6 udelay: 10 elapsed_time: 21.098 njobs: 1e+06 us/job: 21.098
-nspes: 6 udelay: 10 elapsed_time: 22.749 njobs: 1e+06 us/job: 22.749
-nspes: 6 udelay: 10 elapsed_time: 19.651 njobs: 1e+06 us/job: 19.651
-nspes: 1 udelay: 50 elapsed_time: 54.621 njobs: 1e+06 us/job: 54.621
-nspes: 1 udelay: 50 elapsed_time: 54.548 njobs: 1e+06 us/job: 54.548
-nspes: 1 udelay: 50 elapsed_time: 54.641 njobs: 1e+06 us/job: 54.641
-nspes: 2 udelay: 50 elapsed_time: 30.837 njobs: 1e+06 us/job: 30.837
-nspes: 2 udelay: 50 elapsed_time: 30.933 njobs: 1e+06 us/job: 30.933
-nspes: 2 udelay: 50 elapsed_time: 30.044 njobs: 1e+06 us/job: 30.044
-nspes: 3 udelay: 50 elapsed_time: 24.170 njobs: 1e+06 us/job: 24.170
-nspes: 3 udelay: 50 elapsed_time: 23.798 njobs: 1e+06 us/job: 23.798
-nspes: 3 udelay: 50 elapsed_time: 23.515 njobs: 1e+06 us/job: 23.515
-nspes: 4 udelay: 50 elapsed_time: 23.011 njobs: 1e+06 us/job: 23.011
-nspes: 4 udelay: 50 elapsed_time: 21.382 njobs: 1e+06 us/job: 21.382
-nspes: 4 udelay: 50 elapsed_time: 20.531 njobs: 1e+06 us/job: 20.531
-nspes: 5 udelay: 50 elapsed_time: 24.157 njobs: 1e+06 us/job: 24.157
-nspes: 5 udelay: 50 elapsed_time: 21.119 njobs: 1e+06 us/job: 21.119
-nspes: 5 udelay: 50 elapsed_time: 22.055 njobs: 1e+06 us/job: 22.055
-nspes: 6 udelay: 50 elapsed_time: 19.136 njobs: 1e+06 us/job: 19.136
-nspes: 6 udelay: 50 elapsed_time: 20.607 njobs: 1e+06 us/job: 20.607
-nspes: 6 udelay: 50 elapsed_time: 20.527 njobs: 1e+06 us/job: 20.527
-nspes: 1 udelay: 100 elapsed_time: 107.531 njobs: 1e+06 us/job: 107.531
-nspes: 1 udelay: 100 elapsed_time: 107.607 njobs: 1e+06 us/job: 107.607
-nspes: 1 udelay: 100 elapsed_time: 107.532 njobs: 1e+06 us/job: 107.532
-nspes: 2 udelay: 100 elapsed_time: 53.950 njobs: 1e+06 us/job: 53.950
-nspes: 2 udelay: 100 elapsed_time: 53.920 njobs: 1e+06 us/job: 53.920
-nspes: 2 udelay: 100 elapsed_time: 54.232 njobs: 1e+06 us/job: 54.232
-nspes: 3 udelay: 100 elapsed_time: 37.987 njobs: 1e+06 us/job: 37.987
-nspes: 3 udelay: 100 elapsed_time: 38.778 njobs: 1e+06 us/job: 38.778
-nspes: 3 udelay: 100 elapsed_time: 39.042 njobs: 1e+06 us/job: 39.042
-nspes: 4 udelay: 100 elapsed_time: 31.192 njobs: 1e+06 us/job: 31.192
-nspes: 4 udelay: 100 elapsed_time: 31.090 njobs: 1e+06 us/job: 31.090
-nspes: 4 udelay: 100 elapsed_time: 31.472 njobs: 1e+06 us/job: 31.472
-nspes: 5 udelay: 100 elapsed_time: 28.490 njobs: 1e+06 us/job: 28.490
-nspes: 5 udelay: 100 elapsed_time: 27.574 njobs: 1e+06 us/job: 27.574
-nspes: 5 udelay: 100 elapsed_time: 27.013 njobs: 1e+06 us/job: 27.013
-nspes: 6 udelay: 100 elapsed_time: 26.635 njobs: 1e+06 us/job: 26.635
-nspes: 6 udelay: 100 elapsed_time: 24.036 njobs: 1e+06 us/job: 24.036
-nspes: 6 udelay: 100 elapsed_time: 26.174 njobs: 1e+06 us/job: 26.174
-nspes: 1 udelay: 300 elapsed_time: 320.618 njobs: 1e+06 us/job: 320.618
-nspes: 1 udelay: 300 elapsed_time: 320.635 njobs: 1e+06 us/job: 320.635
-nspes: 1 udelay: 300 elapsed_time: 320.699 njobs: 1e+06 us/job: 320.699
-nspes: 2 udelay: 300 elapsed_time: 160.314 njobs: 1e+06 us/job: 160.314
-nspes: 2 udelay: 300 elapsed_time: 160.340 njobs: 1e+06 us/job: 160.340
-nspes: 2 udelay: 300 elapsed_time: 160.312 njobs: 1e+06 us/job: 160.312
-nspes: 3 udelay: 300 elapsed_time: 106.878 njobs: 1e+06 us/job: 106.878
-nspes: 3 udelay: 300 elapsed_time: 106.875 njobs: 1e+06 us/job: 106.875
-nspes: 3 udelay: 300 elapsed_time: 106.871 njobs: 1e+06 us/job: 106.871
-nspes: 4 udelay: 300 elapsed_time: 80.158 njobs: 1e+06 us/job: 80.158
-nspes: 4 udelay: 300 elapsed_time: 80.163 njobs: 1e+06 us/job: 80.163
-nspes: 4 udelay: 300 elapsed_time: 80.154 njobs: 1e+06 us/job: 80.154
-nspes: 5 udelay: 300 elapsed_time: 64.156 njobs: 1e+06 us/job: 64.156
-nspes: 5 udelay: 300 elapsed_time: 64.250 njobs: 1e+06 us/job: 64.250
-nspes: 5 udelay: 300 elapsed_time: 64.158 njobs: 1e+06 us/job: 64.158
-nspes: 6 udelay: 300 elapsed_time: 53.633 njobs: 1e+06 us/job: 53.633
-nspes: 6 udelay: 300 elapsed_time: 53.541 njobs: 1e+06 us/job: 53.541
-nspes: 6 udelay: 300 elapsed_time: 53.617 njobs: 1e+06 us/job: 53.617
-nspes: 1 udelay: 500 elapsed_time: 533.638 njobs: 1e+06 us/job: 533.638
-nspes: 1 udelay: 500 elapsed_time: 533.649 njobs: 1e+06 us/job: 533.649
-nspes: 1 udelay: 500 elapsed_time: 533.618 njobs: 1e+06 us/job: 533.618
-nspes: 2 udelay: 500 elapsed_time: 266.810 njobs: 1e+06 us/job: 266.810
-nspes: 2 udelay: 500 elapsed_time: 266.814 njobs: 1e+06 us/job: 266.814
-nspes: 2 udelay: 500 elapsed_time: 266.893 njobs: 1e+06 us/job: 266.893
-nspes: 3 udelay: 500 elapsed_time: 177.875 njobs: 1e+06 us/job: 177.875
-nspes: 3 udelay: 500 elapsed_time: 177.878 njobs: 1e+06 us/job: 177.878
-nspes: 3 udelay: 500 elapsed_time: 177.875 njobs: 1e+06 us/job: 177.875
-nspes: 4 udelay: 500 elapsed_time: 133.417 njobs: 1e+06 us/job: 133.417
-nspes: 4 udelay: 500 elapsed_time: 133.483 njobs: 1e+06 us/job: 133.483
-nspes: 4 udelay: 500 elapsed_time: 133.407 njobs: 1e+06 us/job: 133.407
-nspes: 5 udelay: 500 elapsed_time: 106.723 njobs: 1e+06 us/job: 106.723
-nspes: 5 udelay: 500 elapsed_time: 106.728 njobs: 1e+06 us/job: 106.728
-nspes: 5 udelay: 500 elapsed_time: 106.722 njobs: 1e+06 us/job: 106.722
-nspes: 6 udelay: 500 elapsed_time: 88.943 njobs: 1e+06 us/job: 88.943
-nspes: 6 udelay: 500 elapsed_time: 88.941 njobs: 1e+06 us/job: 88.941
-nspes: 6 udelay: 500 elapsed_time: 88.944 njobs: 1e+06 us/job: 88.944
diff --git a/gcell/apps/split_and_avg_results.py b/gcell/apps/split_and_avg_results.py
deleted file mode 100755
index 8a750fac9..000000000
--- a/gcell/apps/split_and_avg_results.py
+++ /dev/null
@@ -1,101 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright 2007,2008 Free Software Foundation, Inc.
-#
-# This file is part of GNU Radio
-#
-# GNU Radio is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# GNU Radio is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-
-"""
-input file looks like this:
-
-nspes: 1 udelay: 10 elapsed_time: 6.842 njobs: 500000 speedup: 0.731
-nspes: 2 udelay: 10 elapsed_time: 4.093 njobs: 500000 speedup: 1.221
-"""
-
-import sys
-from optparse import OptionParser
-from pprint import pprint
-
-class data(object):
- def __init__(self, nspes, work_per_job, elapsed_time, njobs):
- self.nspes = nspes
- self.work_per_job = work_per_job # seconds
- self.elapsed_time = elapsed_time # seconds
- self.njobs = njobs
- self.speedup = work_per_job * njobs / elapsed_time
-
- def __repr__(self):
- return "<data nspes=%d work_per_job=%s elapsed_time=%s njobs=%s speedup=%s>" % (
- self.nspes, (self.work_per_job),
- (self.elapsed_time),
- (self.njobs),
- (self.speedup))
-
-def cmp_data(x, y):
- t = x.nspes - y.nspes
- if t == 0:
- t = x.work_per_job - y.work_per_job
- if t < 0:
- return -1
- elif t > 0:
- return +1
- else:
- return 0
- return t
-
-def main():
- usage = "usage: %prog [options] input_filename"
- parser = OptionParser(usage=usage)
- (options, args) = parser.parse_args()
- if len(args) != 1:
- parser.print_help()
- raise SystemExit, 1
- input_filename = args[0]
-
-
- m = {}
- for line in open(input_filename, "r"):
- s = line.split()
- nspes = int(s[1])
- work_per_job = int(s[3]) * 1e-6
- elapsed_time = float(s[5])
- njobs = float(s[7])
- d = data(nspes, work_per_job, elapsed_time, njobs)
-
- # collect lists that have the same values for nspes and work_per_job
- # so we can generate an average elapsed_time from all observations
- key = (nspes, work_per_job)
- v = m.get(key, [])
- v.append(d)
- m[key] = v
-
- r = []
- for k, v in m.iteritems():
- total_elapsed_time = sum([x.elapsed_time for x in v])
- r.append(data(v[0].nspes,
- v[0].work_per_job,
- total_elapsed_time/len(v),
- v[0].njobs))
-
- r.sort(cmp_data)
-
- #pprint(r)
- for t in r:
- print t.nspes, t.work_per_job, t.elapsed_time, t.njobs, t.speedup
-
-if __name__ == '__main__':
- main()
diff --git a/gcell/apps/spu/.gitignore b/gcell/apps/spu/.gitignore
deleted file mode 100644
index c50e521a3..000000000
--- a/gcell/apps/spu/.gitignore
+++ /dev/null
@@ -1,8 +0,0 @@
-/Makefile
-/Makefile.in
-/*.a
-/*.la
-/*.lo
-/.deps
-/.libs
-/benchmark_procs
diff --git a/gcell/apps/spu/Makefile.am b/gcell/apps/spu/Makefile.am
deleted file mode 100644
index c07a2c398..000000000
--- a/gcell/apps/spu/Makefile.am
+++ /dev/null
@@ -1,34 +0,0 @@
-#
-# Copyright 2008 Free Software Foundation, Inc.
-#
-# This file is part of GNU Radio
-#
-# GNU Radio is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# GNU Radio is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-
-
-include $(top_srcdir)/Makefile.common.spu
-
-AM_CPPFLAGS = $(GCELL_SPU_INCLUDES)
-
-# SPU executables
-
-noinst_PROGRAMS = \
- benchmark_procs
-
-benchmark_procs_SOURCES = benchmark_procs.c
-benchmark_procs_LDADD = $(GCELL_SPU_LA)
-benchmark_procs_DEPENDENCIES = $(GCELL_SPU_LA)
-
diff --git a/gcell/apps/spu/benchmark_procs.c b/gcell/apps/spu/benchmark_procs.c
deleted file mode 100644
index fbc703349..000000000
--- a/gcell/apps/spu/benchmark_procs.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2008 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#include <gcell/gc_declare_proc.h>
-#include <gcell/spu/gc_delay.h>
-#include <string.h>
-
-static void
-benchmark_udelay(const gc_job_direct_args_t *input,
- gc_job_direct_args_t *output _UNUSED,
- const gc_job_ea_args_t *eaa _UNUSED)
-{
- gc_udelay(input->arg[0].u32);
-}
-
-GC_DECLARE_PROC(benchmark_udelay, "benchmark_udelay");
-
-
-
-static void
-benchmark_put_zeros(const gc_job_direct_args_t *input _UNUSED,
- gc_job_direct_args_t *output _UNUSED,
- const gc_job_ea_args_t *eaa)
-{
- for (unsigned int i = 0; i < eaa->nargs; i++){
- if (eaa->arg[i].direction == GCJD_DMA_PUT)
- memset(eaa->arg[i].ls_addr, 0, eaa->arg[i].put_size);
- }
-}
-
-GC_DECLARE_PROC(benchmark_put_zeros, "benchmark_put_zeros");
-
-
-static void
-benchmark_copy(const gc_job_direct_args_t *input _UNUSED,
- gc_job_direct_args_t *output,
- const gc_job_ea_args_t *eaa)
-{
- if (eaa->nargs != 2
- || eaa->arg[0].direction != GCJD_DMA_PUT
- || eaa->arg[1].direction != GCJD_DMA_GET){
- output->arg[0].s32 = -1;
- return;
- }
-
- output->arg[0].s32 = 0;
- unsigned n = eaa->arg[0].put_size;
- if (eaa->arg[1].get_size < n)
- n = eaa->arg[1].get_size;
-
- memcpy(eaa->arg[0].ls_addr, eaa->arg[1].ls_addr, n);
-}
-
-GC_DECLARE_PROC(benchmark_copy, "benchmark_copy");
diff --git a/gcell/apps/test_all.cc b/gcell/apps/test_all.cc
deleted file mode 100644
index fc3afd8ca..000000000
--- a/gcell/apps/test_all.cc
+++ /dev/null
@@ -1,43 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2007,2010,2011 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#include <cppunit/TextTestRunner.h>
-#include <cppunit/XmlOutputter.h>
-
-#include <gr_unittests.h>
-#include "../lib/runtime/qa_gcell_runtime.h"
-#include "../lib/wrapper/qa_gcell_wrapper.h"
-
-int
-main(int argc, char **argv)
-{
- CppUnit::TextTestRunner runner;
- std::ofstream xmlfile(get_unittest_path("gcell_all.xml").c_str());
- CppUnit::XmlOutputter *xmlout = new CppUnit::XmlOutputter(&runner.result(), xmlfile);
-
- runner.addTest(qa_gcell_runtime::suite());
- runner.addTest(qa_gcell_wrapper::suite());
- runner.setOutputter(xmlout);
-
- bool was_successful = runner.run("", false);
-
- return was_successful ? 0 : 1;
-}