https://github.com/Microsoft/CNTK
Raw File
Tip revision: bb18eb24c7ad17ebca1cfa1fc94d9cd2eff52774 authored by Mark Hillebrand on 18 January 2016, 08:37:59 UTC
License change
Tip revision: bb18eb2
CUDAPageLockedMemAllocator.h
#pragma once

#include "MemAllocator.h"

namespace Microsoft { namespace MSR { namespace CNTK {

    #ifdef    _WIN32
    #ifdef MATH_EXPORTS
    #define MATH_API __declspec(dllexport)
    #else
    #define MATH_API __declspec(dllimport)
    #endif
    #else    // no DLLs on Linux
    #define    MATH_API 
    #endif

    class MATH_API CUDAPageLockedMemAllocator : public MemAllocator
    {
    public:
        CUDAPageLockedMemAllocator(int deviceID);

        int GetDeviceId() const;
        void* Malloc(size_t size) override;
        void Free(void* p) override;
        static void* Malloc(size_t size, int deviceId);
        static void Free(void* p, int deviceId);

    private:
        int m_deviceID;
    };

}}}
back to top