https://github.com/Microsoft/CNTK
Raw File
Tip revision: c10fb0cf1d90e6d0634ca6ca62f159035c0a40e8 authored by kaituoxu on 11 June 2018, 10:05:42 UTC
cherry-pick 8deb528b7298f988a614f8570ef1211ccdc446d6 from t-kax/debug-fsmn
Tip revision: c10fb0c
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