فهرست منبع

Change cudaHostAlloc to malloc

cudaHostAlloc( .... , cudaHostAllocPortable) causes problems and is not
needed since we already do cudaHostRegisterPortable when allocating
memory on GPU.
Dhairya Malhotra 10 سال پیش
والد
کامیت
ad671fbcee
3فایلهای تغییر یافته به همراه15 افزوده شده و 29 حذف شده
  1. 0 1
      Makefile.am
  2. 15 8
      include/device_wrapper.txx
  3. 0 20
      src/device_wrapper_gpu.cu

+ 0 - 1
Makefile.am

@@ -114,7 +114,6 @@ lib_libpvfmm_a_SOURCES = \
 
 if NVCC_OK
 lib_libpvfmm_a_SOURCES += \
-													src/device_wrapper_gpu.cu \
 													src/fmm_pts_gpu.cu
 endif
 

+ 15 - 8
include/device_wrapper.txx

@@ -23,14 +23,21 @@ namespace pvfmm{
 namespace DeviceWrapper{
 
   // CUDA functions
-#ifdef __cplusplus
-extern "C" {
-#endif
-  void* host_malloc_cuda(size_t size);
-  void host_free_cuda(void* p);
-#ifdef __cplusplus
-}
-#endif
+  inline void* host_malloc_cuda(size_t size){
+    return malloc(size);
+    //void* p;
+    //cudaError_t error = cudaHostAlloc(&p, size, cudaHostAllocPortable);
+    //if (error != cudaSuccess) fprintf(stderr,"CUDA Error: %s \n", cudaGetErrorString(error));
+    //assert(error == cudaSuccess);
+    //return p;
+  }
+
+  inline void host_free_cuda(void* p){
+    free(p);
+    //cudaError_t error = cudaFreeHost(p);
+    //if (error != cudaSuccess) fprintf(stderr,"CUDA Error: %s \n", cudaGetErrorString(error));
+    //assert(error == cudaSuccess);
+  }
 
   inline uintptr_t alloc_device_cuda(char* dev_handle, size_t len) {
     char *dev_ptr=NULL;

+ 0 - 20
src/device_wrapper_gpu.cu

@@ -1,20 +0,0 @@
-#include <stdio.h>
-#include <assert.h>
-
-extern "C" {
-
-void* host_malloc_cuda(size_t size){
-  void* p;
-  cudaError_t error = cudaHostAlloc(&p, size, cudaHostAllocPortable);
-  if (error != cudaSuccess) fprintf(stderr,"CUDA Error: %s \n", cudaGetErrorString(error));
-  assert(error == cudaSuccess);
-  return p;
-}
-
-void host_free_cuda(void* p){
-  cudaError_t error = cudaFreeHost(p);
-  if (error != cudaSuccess) fprintf(stderr,"CUDA Error: %s \n", cudaGetErrorString(error));
-  assert(error == cudaSuccess);
-}
-
-}