Skip to content
Snippets Groups Projects
tnlMIC.h 1.33 KiB
Newer Older
  • Learn to ignore specific revisions
  • Vít Hanousek's avatar
    Vít Hanousek committed
    /*
     * To change this license header, choose License Headers in Project Properties.
     * To change this template file, choose Tools | Templates
     * and open the template in the editor.
     */
    
    /* 
     * File:   tnlMIC.h
     * Author: hanouvit
     *
     * Created on 18. dubna 2016, 12:38
     */
    
    #include <iostream>
    #include <core/tnlString.h>
    #include <core/tnlDevice.h>
    #include <core/tnlDevice_Callable.h>
    
    
    #ifndef TNLMIC_H
    #define TNLMIC_H
    
    #define ALLOC alloc_if(1) //naalokuj promenou na zacatku offload  bloku -- default
    #define FREE free_if(1) // smaz promenou na konci offload bloku -- default
    #define RETAIN free_if(0) //nesmaz promenou na konci bloku
    #define REUSE alloc_if(0) //nealokuj proměnnou na zacatku
    
    
    class tnlMIC
    {
       public:
           //useful debuging -- but produce warning
           __device_callable__ static inline void CheckMIC(void)
           {
                #ifdef __MIC__
                        std::cout<<"ON MIC"<<std::endl;
                #else
                        std::cout<<"ON CPU" <<std::endl;
                #endif
            }
           
           
            static tnlString getDeviceType()
            {
                return tnlString( "tnlMIC" );
            }
    
             __device_callable__ static inline tnlDeviceEnum getDevice()
             {
                 return tnlMICDevice;
             }
    };
    
    
    template< typename Type >
    struct satanHider{
        Type *pointer;
    };
    
    Vít Hanousek's avatar
    Vít Hanousek committed
    
    #endif /* TNLMIC_H */