Mercurial > hg > Gears > GearsAgda
changeset 490:ef965008bef1
Merge
author | Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 29 Dec 2017 19:28:24 +0900 |
parents | 1861e41aa96a (diff) a7548f01f013 (current diff) |
children | f985815ad032 |
files | |
diffstat | 7 files changed, 13 insertions(+), 22 deletions(-) [+] |
line wrap: on
line diff
--- a/src/parallel_execution/CMakeLists.txt Fri Dec 29 19:27:39 2017 +0900 +++ b/src/parallel_execution/CMakeLists.txt Fri Dec 29 19:28:24 2017 +0900 @@ -13,12 +13,15 @@ if (${USE_CUDA}) include_directories("/usr/local/cuda/include") set(NVCCFLAG "-std=c++11" "-g" "-O0" ) - set(CUDA_LINK_FLAGS "-framework CUDA -lc++ -Wl,-search_paths_first -Wl,-headerpad_max_install_names /usr/local/cuda/lib/libcudart_static.a -Wl,-rpath,/usr/local/cuda/lib") + if (UNIX AND NOT APPLE) # LINUX + set(CUDA_LINK_FLAGS "-L/usr/local/cuda/lib64 -lcuda -lcudart") + elseif (APPLE) + set(CUDA_LINK_FLAGS "-framework CUDA -lc++ -Wl,-search_paths_first -Wl,-headerpad_max_install_names /usr/local/cuda/lib/libcudart_static.a -Wl,-rpath,/usr/local/cuda/lib") + endif() find_package(CUDA REQUIRED) SET( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CUDA_LINK_FLAGS}" ) endif() - macro( GearsCommand ) set( _OPTIONS_ARGS ) set( _ONE_VALUE_ARGS TARGET )
--- a/src/parallel_execution/CUDAWorker.cbc Fri Dec 29 19:27:39 2017 +0900 +++ b/src/parallel_execution/CUDAWorker.cbc Fri Dec 29 19:28:24 2017 +0900 @@ -4,18 +4,19 @@ #interface "Iterator.h" #interface "Queue.h" -extern void cudaInit(struct CUDAWorker *cudaWorker,int phase) ; +extern void cudaInit(struct CUDAWorker *cudaWorker,int phase, int deviceNum); extern void cudaShutdown(CUDAWorker *cudaWorker); static void startCUDAWorker(Worker* worker); -Worker* createCUDAWorker(struct Context* context, int id, Queue* queue, TaskManagerImpl *im) { +Worker* createCUDAWorker(struct Context* context, int id, Queue* queue, int deviceNum) { struct Worker* worker = new Worker(); struct CUDAWorker* cudaWorker = new CUDAWorker(); worker->worker = (union Data*)cudaWorker; worker->tasks = queue; cudaWorker->id = id; cudaWorker->loopCounter = 0; + cudaWorker->deviceNum = deviceNum; worker->taskReceive = C_taskReceiveCUDAWorker; worker->shutdown = C_shutdownCUDAWorker; pthread_create(&worker->thread, NULL, (void*)&startCUDAWorker, worker); @@ -24,8 +25,7 @@ static void startCUDAWorker(Worker* worker) { struct CUDAWorker* cudaWorker = &worker->worker->CUDAWorker; - int deviceNum = 0; - cudaInit(cudaWorker, deviceNum); + cudaInit(cudaWorker, 0, cudaWorker->deviceNum); cudaWorker->context = NEW(struct Context); initContext(cudaWorker->context); cudaWorker->executor = createCUDAExecutor(cudaWorker->context, cudaWorker->device);
--- a/src/parallel_execution/context.h Fri Dec 29 19:27:39 2017 +0900 +++ b/src/parallel_execution/context.h Fri Dec 29 19:28:24 2017 +0900 @@ -199,6 +199,7 @@ struct Context* context; int id; int loopCounter; + int deviceNum; struct Queue* tasks; int runFlag; enum Code next;
--- a/src/parallel_execution/cuda.c Fri Dec 29 19:27:39 2017 +0900 +++ b/src/parallel_execution/cuda.c Fri Dec 29 19:28:24 2017 +0900 @@ -2,7 +2,6 @@ #include <sys/time.h> #include <string.h> #include <stdlib.h> -#include <libkern/OSAtomic.h> // includes, project #include <driver_types.h>
--- a/src/parallel_execution/examples/bitonicSort/bitonicSort.cbc Fri Dec 29 19:27:39 2017 +0900 +++ b/src/parallel_execution/examples/bitonicSort/bitonicSort.cbc Fri Dec 29 19:28:24 2017 +0900 @@ -97,9 +97,5 @@ int main(int argc, char** argv) { init(argc, argv); - struct Context* main_context = NEW(struct Context); - initContext(main_context); - main_context->next = C_initDataGears; - - goto start_code(main_context); + goto initDataGears(); }
--- a/src/parallel_execution/examples/calc/calc.cbc Fri Dec 29 19:27:39 2017 +0900 +++ b/src/parallel_execution/examples/calc/calc.cbc Fri Dec 29 19:28:24 2017 +0900 @@ -95,9 +95,5 @@ int main(int argc, char** argv) { init(argc, argv); - struct Context* main_context = NEW(struct Context); - initContext(main_context); - main_context->next = C_initDataGears; - - goto start_code(main_context); + goto initDataGears(); }
--- a/src/parallel_execution/examples/twice/main.cbc Fri Dec 29 19:27:39 2017 +0900 +++ b/src/parallel_execution/examples/twice/main.cbc Fri Dec 29 19:28:24 2017 +0900 @@ -83,9 +83,5 @@ int main(int argc, char** argv) { init(argc, argv); - struct Context* main_context = NEW(struct Context); - initContext(main_context); - main_context->next = C_initDataGears; - - goto start_code(main_context); + goto initDataGears(); }