diff --git a/api/src/Makefile b/api/src/Makefile index 51a803d..3d65038 100644 --- a/api/src/Makefile +++ b/api/src/Makefile @@ -21,6 +21,7 @@ XLINK_BASE=$(MV_COMMON_BASE)/components/XLink XLINKCONSOLE_BASE=$(MV_COMMON_BASE)/components/XLinkConsole XLINK_SRCS=$(XLINK_BASE)/pc/usb_boot.c +XLINK_SRCS+=$(XLINK_BASE)/pc/pcie_host.c XLINK_SRCS+=$(XLINK_BASE)/shared/XLink.c XLINK_SRCS+=$(XLINK_BASE)/shared/XLinkDispatcher.c XLINK_SRCS+=$(XLINKCONSOLE_BASE)/pc/XLinkConsole.c @@ -80,7 +81,7 @@ $(OBJDIR)/%.o: %.c get_mvcmd: @./get_mvcmd.sh -basicinstall: $(OBJDIR)/$(OUT) +basicinstall: $(OBJDIR)/$(OUT) get_mvcmd mkdir -p $(INSTALLDIR)/include/ mkdir -p $(INSTALLDIR)/include/mvnc2 mkdir -p $(INSTALLDIR)/lib/ @@ -104,7 +105,7 @@ postinstall: udevadm trigger ldconfig -install: get_mvcmd basicinstall pythoninstall postinstall +install: basicinstall pythoninstall postinstall uninstall: rm -f $(INSTALLDIR)/lib/$(OUT) @@ -122,4 +123,4 @@ clean: rm -f $(OBJS) rm -rf $(OBJDIR) rm -f $(LIB_NAME).so - find mvnc/ -type f -delete + if [ -d "mvnc" ]; then find mvnc/ -type f -delete ; fi diff --git a/api/src/common/components/XLink/pc/XLinkPlatform.c b/api/src/common/components/XLink/pc/XLinkPlatform.c index ca07ac2..5fab9aa 100644 --- a/api/src/common/components/XLink/pc/XLinkPlatform.c +++ b/api/src/common/components/XLink/pc/XLinkPlatform.c @@ -42,6 +42,7 @@ extern void initialize_usb_boot(); #include #endif +#include "pcie_host.h" #include "usb_boot.h" #define MAX_EVENTS 64 @@ -87,6 +88,17 @@ static double seconds() /*################################################################################# ################################## USB CDC FUNCTIONS ############################## ##################################################################################*/ +static xLinkPlatformErrorCode_t cdc_convert_error_code(int rc) { + switch(rc) { + case 0: + return X_LINK_PLATFORM_SUCCESS; + case -1: + return X_LINK_PLATFORM_DEVICE_NOT_FOUND; + //No timeout case for cdc + default: + return X_LINK_PLATFORM_ERROR; + } +} static int cdc_usb_write(void *f __attribute__((unused)), void* data, size_t size, unsigned int timeout __attribute__((unused))) @@ -95,14 +107,14 @@ static int cdc_usb_write(void *f __attribute__((unused)), size_t byteCount = 0; if(usbFdWrite < 0) { - return -1; + return cdc_convert_error_code(-1); } while(byteCount < size) { int toWrite = (gl_packetLength && ((size - byteCount) > gl_packetLength)) \ ? gl_packetLength : size - byteCount; int wc = write(usbFdWrite, ((char*)data) + byteCount, toWrite); if (wc != toWrite) { - return -2; + return cdc_convert_error_code(-2); } byteCount += toWrite; @@ -111,14 +123,14 @@ static int cdc_usb_write(void *f __attribute__((unused)), int rc = read(usbFdWrite, &acknowledge, sizeof(acknowledge)); if ( rc < 0) { - return -2; + return cdc_convert_error_code(-2); } if (acknowledge == 0xEF) { //printf("read ack %x\n", acknowledge); } else { printf("read ack err %x %d\n", acknowledge, rc); - return -2; + return cdc_convert_error_code(-2); } //*/ } #endif @@ -131,7 +143,7 @@ static int cdc_usb_read(void *f __attribute__((unused)), { #if (!defined(_WIN32) && !defined(_WIN64)) if(usbFdRead < 0) { - return -1; + return cdc_convert_error_code(-1); } size_t byteCount = 0; int toRead = 0; @@ -143,7 +155,7 @@ static int cdc_usb_read(void *f __attribute__((unused)), { int rc = read(usbFdRead, &((char*)data)[byteCount], toRead); if (rc < 0) { - return -2; + return cdc_convert_error_code(-2); } toRead -= rc; byteCount += rc; @@ -155,7 +167,7 @@ static int cdc_usb_read(void *f __attribute__((unused)), //printf("write %x %d\n", acknowledge, wc); } else { - return -2; + return cdc_convert_error_code(-2); } //*/ } #endif @@ -240,6 +252,18 @@ static int cdc_usb_close(void *f __attribute__((unused))) /*################################################################################# ################################## USB VSC FUNCTIONS ############################## ##################################################################################*/ +static xLinkPlatformErrorCode_t vsc_convert_error_code(int rc) { + switch(rc) { + case 0: + return X_LINK_PLATFORM_SUCCESS; + case LIBUSB_ERROR_TIMEOUT: + return X_LINK_PLATFORM_TIMEOUT; + case LIBUSB_ERROR_NO_DEVICE: + return X_LINK_PLATFORM_DEVICE_NOT_FOUND; + default: + return X_LINK_PLATFORM_ERROR; + } +} static int vsc_usb_write(void *f, void *data, size_t size, unsigned int timeout) { while(size > 0) @@ -258,7 +282,7 @@ static int vsc_usb_write(void *f, void *data, size_t size, unsigned int timeout) timeout); #endif if(rc) - return rc; + return vsc_convert_error_code(rc); data = (char *)data + bt; size -= bt; } @@ -283,7 +307,7 @@ static int vsc_usb_read(void *f, void *data, size_t size, unsigned int timeout) timeout); #endif if(rc) - return rc; + return vsc_convert_error_code(rc); data = ((char *)data) + bt; size -= bt; } @@ -316,7 +340,7 @@ static int vsc_usb_open(const char* devPathRead __attribute__((unused)), if (libusb_rc < 0) { usb_close_device(h); usb_free_device(dev); - return 0; + return -1; } //usb_close_device(h); //usb_free_device(dev); @@ -361,42 +385,85 @@ static int vsc_usb_close(void *f) return 0; } +static int write_pending = 0; +static int read_pending = 0; + /*################################################################################# ################################### PCIe FUNCTIONS ################################ ##################################################################################*/ -static int pcie_host_write(void *f __attribute__((unused)), - void *data, size_t size, - unsigned int timeout __attribute__((unused))) +#define UNUSED __attribute__((unused)) + +static int pcie_host_write(UNUSED void *f, void *data, size_t size, + UNUSED unsigned int timeout) { - return write(pcieFd, ((char*)data), size); + int left = size; + while(left > 0) + { + write_pending = 1; + + int bt = pcie_write(pcieFd, data, left); + + if (bt == -EAGAIN) + { + // Let read commands be submitted + if (read_pending > 0) + usleep(1000); + continue; + } + + write_pending = 0; + + if(bt < 0) + return bt; + data = ((char *)data) + bt; + left -= bt; + } + + return size; } -static int pcie_host_read(void *f __attribute__((unused)), - void *data, size_t size, - unsigned int timeout __attribute__((unused))) +static int pcie_host_read(UNUSED void *f, void *data, size_t size, + UNUSED unsigned int timeout) { - return read(pcieFd, ((char*)data), size); + int left = size; + while(left > 0) + { + read_pending = 1; + + int bt = pcie_read(pcieFd, data, left); + + if (bt == -EAGAIN) { + // Let write commands be submitted + if (write_pending > 0) + usleep(1000); + continue; + } + + read_pending = 0; + + if(bt < 0) + return bt; + data = ((char *)data) + bt; + left -= bt; + } + + return size; } -static int pcie_host_open(const char* devPathRead __attribute__((unused)), - const char* devPathWrite, - void** fd __attribute__((unused))) +static int pcie_host_open(UNUSED const char* devPathRead, + const char* devPathWrite, + UNUSED void** fd) { - printf("pcie_host_open. Starting device test code example...\n"); - pcieFd = open(devPathWrite, O_RDWR); - if (pcieFd < 0){ - perror("Failed to open the device..."); - return errno; - } - //*fd = &pcieFd; //might not need - return 0; + return pcie_init(devPathWrite, &pcieFd); } -static int pcie_host_close(void *f __attribute__((unused))) +static int pcie_host_close(UNUSED void *f) { - printf("pcie_host_close \n"); - return close(pcieFd); + pcie_close(pcieFd); + return 0; } + +#undef UNUSED /*############################### FUNCTION ARRAYS #################################*/ /*These arrays hold the write/read/open/close operation functions specific for each communication protocol. @@ -445,15 +512,15 @@ int XLinkPlatformInit(protocol_t protocol, int loglevel) return 0; } - -int getDeviceName(int index, char* name, int nameSize , int pid) +static int getDeviceName(int index, char* name, int nameSize , int pid) { switch(gl_protocol){ case Pcie: - name = "/dev/ma2x8x_0"; //hardcoded for now - nameSize = strlen(name); + { + return pcie_find_device_port(index, name, nameSize); break; + } case Ipc: break; case UsbCDC: @@ -495,6 +562,10 @@ int XLinkPlatformBootRemote(const char* deviceName, const char* binaryPath) char subaddr[28+2]; int rc; + /* Don't try to boot FW if PCIe */ +#ifdef USE_PCIE + return 0; +#endif if (usbFdRead != -1){ close(usbFdRead); usbFdRead = -1; diff --git a/api/src/common/components/XLink/pc/pcie_host.c b/api/src/common/components/XLink/pc/pcie_host.c new file mode 100644 index 0000000..5da0750 --- /dev/null +++ b/api/src/common/components/XLink/pc/pcie_host.c @@ -0,0 +1,103 @@ +/// +/// @file pcie_host.h +/// @copyright All code copyright Intel Corporation 2018, all rights reserved. +/// For License Warranty see: common/license.txt +/// +#include "XLinkPlatform.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define PCIE_DEVICE_ID 0x6200 +#define PCIE_VENDOR_ID 0x8086 +#define MAX_PATH_SIZE 256 + +int pcie_write(int fd, void *buf, size_t bufSize) +{ + int ret = write(fd, buf, bufSize); + + if (ret < 0) + { + return -errno; + } + + return ret; +} + +int pcie_read(int fd, void *buf, size_t bufSize) +{ + int ret = read(fd, buf, bufSize); + + if (ret < 0) + { + return -errno; + } + + return ret; +} + +int pcie_init(const char *slot, int *fd) +{ + *fd = open(slot, O_RDWR); + + if (*fd == -1) + return -1; + + return 0; +} + +int pcie_close(int fd) +{ + close(fd); + return 0; +} + +xLinkPlatformErrorCode_t pcie_find_device_port(int index, char* port_name, int size) { + xLinkPlatformErrorCode_t rc = X_LINK_PLATFORM_DEVICE_NOT_FOUND; + struct dirent *entry; + DIR *dp; + + if (port_name == NULL) + return X_LINK_PLATFORM_ERROR; + + dp = opendir("/sys/class/mxlk/"); + if (dp == NULL) + { + perror("opendir"); + return X_LINK_PLATFORM_DRIVER_NOT_LOADED; + } + + // All entries in this (virtual) directory are generated when the driver + // is loaded, and correspond 1:1 to entries in /dev/ + + int device_cnt = 0; + while((entry = readdir(dp))) { + //printf("Entry: %s %d\n", entry->d_name, strncmp(entry->d_name, "mxlink", 6)); + // Compare the beginning of the name to make sure it is a device name + if (strncmp(entry->d_name, "mxlk", 4) == 0) + { + if (device_cnt == index) + { + snprintf(port_name, size, "/dev/%s", entry->d_name); + //printf("Found port %s for index %d\n", port_name, index); + rc = X_LINK_PLATFORM_SUCCESS; + break; + } + + device_cnt++; + } + } + closedir(dp); + + return rc; +} diff --git a/api/src/common/components/XLink/pc/pcie_host.h b/api/src/common/components/XLink/pc/pcie_host.h new file mode 100644 index 0000000..6f50713 --- /dev/null +++ b/api/src/common/components/XLink/pc/pcie_host.h @@ -0,0 +1,17 @@ +/// +/// @file pcie_host.h +/// @copyright All code copyright Intel Corporation 2018, all rights reserved. +/// For License Warranty see: common/license.txt +/// +#ifndef PCIE_HOST_H +#define PCIE_HOST_H + +#include "XLinkPlatform.h" + +int pcie_init(const char *slot, int *fd); +int pcie_write(int fd, void * buf, size_t bufSize); +int pcie_read(int fd, void *buf, size_t bufSize); +int pcie_close(int fd); +xLinkPlatformErrorCode_t pcie_find_device_port(int index, char* port_name, int size); + +#endif diff --git a/api/src/common/components/XLink/shared/XLink.c b/api/src/common/components/XLink/shared/XLink.c index 1f6e5c7..6d178b7 100644 --- a/api/src/common/components/XLink/shared/XLink.c +++ b/api/src/common/components/XLink/shared/XLink.c @@ -37,6 +37,7 @@ #else #include #include +#include #endif #include "mvMacros.h" @@ -132,7 +133,7 @@ int handleIncomingEvent(xLinkEvent_t* event){ /*If we got here, we will read the data no matter what happens. If we encounter any problems we will still read the data to keep the communication working but send a NACK.*/ - stream = getStreamById(event->xLinkFD, event->header.streamId);\ + stream = getStreamById(event->xLinkFD, event->header.streamId); ASSERT_X_LINK(stream); stream->localFillLevel += event->header.size; @@ -220,22 +221,31 @@ int handleIncomingEvent(xLinkEvent_t* event){ } int dispatcherEventReceive(xLinkEvent_t* event){ static xLinkEvent_t prevEvent; - int sc = XLinkRead(event->xLinkFD, &event->header, sizeof(event->header), 0); - - if(sc < 0 && event->header.type == USB_RESET_RESP) { - return sc; + int sc = X_LINK_PLATFORM_TIMEOUT; + while (sc == X_LINK_PLATFORM_TIMEOUT) { + sc = XLinkRead(event->xLinkFD, &event->header, sizeof(event->header), USB_DATA_TIMEOUT); + + if(sc < 0) { + if (event->header.type == USB_RESET_RESP) { + return sc; + } else { + xLinkDesc_t* link = getLink(event->xLinkFD); + if (link->hostClosedFD) { + //host intentionally closed usb, finish normally + event->header.type = USB_RESET_RESP; + return 0; + } + } + } } + + //If we got here then either: 1) read was successful + // 2) failed on other issue that is not timeout. + // if it was timeout or device was reset/hostClosedFd it will be caught above. if(sc < 0) { - xLinkDesc_t* link = getLink(event->xLinkFD); - if (link->hostClosedFD) { - //host intentionally closed usb, finish normally - event->header.type = USB_RESET_RESP; - return 0; - } mvLog(MVLOG_ERROR,"%s() Read failed %d\n", __func__, (int)sc); return sc; } - mvLog(MVLOG_DEBUG,"Incoming event %d %d %d %d\n", (int)event->header.type, (int)event->header.id, @@ -334,7 +344,7 @@ streamDesc_t* getStreamByName(xLinkDesc_t* link, const char* name) if (link->availableStreams[stream].id != INVALID_STREAM_ID && strcmp(link->availableStreams[stream].name, name) == 0) { sem_wait(&link->availableStreams[stream].sem); - return &link->availableStreams[stream]; + return &link->availableStreams[stream]; } } return NULL; @@ -453,7 +463,7 @@ streamId_t allocateNewStream(void* fd, { return INVALID_STREAM_ID; } - mvLog(MVLOG_DEBUG,"%s(): streamName Exists %d\n", __func__, (int)stream->id); + mvLog(MVLOG_DEBUG,"%s(): streamName Exists id = %d\n", __func__, (int)stream->id); } else { @@ -545,13 +555,13 @@ int dispatcherLocalEventGetResponse(xLinkEvent_t* event, xLinkEvent_t* response) event->header.flags.bitField.block = 1; // TODO: easy to implement non-blocking read here, just return nack } - releaseStream(stream); event->header.flags.bitField.localServe = 1; + releaseStream(stream); break; case USB_READ_REL_REQ: stream = getStreamById(event->xLinkFD, event->header.streamId); ASSERT_X_LINK(stream); - uint32_t releasedSize; + uint32_t releasedSize = 0; releasePacketFromStream(stream, &releasedSize); event->header.size = releasedSize; releaseStream(stream); @@ -712,6 +722,7 @@ int dispatcherRemoteEventGetResponse(xLinkEvent_t* event, xLinkEvent_t* response deallocateStream(stream); if (!stream->writeSize) { stream->id = INVALID_STREAM_ID; + stream->name[0] = '\0'; } } else @@ -1081,7 +1092,7 @@ XLinkError_t XLinkGetAvailableStreams(linkId_t id) return X_LINK_SUCCESS; } -XLinkError_t GetDeviceName(int index, char* name, int nameSize, int pid) +static XLinkError_t GetDeviceName(int index, char* name, int nameSize, int pid) { int rc = -1; if (!pid) @@ -1268,6 +1279,7 @@ XLinkError_t XLinkDisconnect(linkId_t id) xLinkDesc_t* link = getLinkById(id); ASSERT_X_LINK(link != NULL); link->hostClosedFD = 1; + usleep((USB_DATA_TIMEOUT + 500)*1000); XLinkPlatformResetRemote(link->fd); return X_LINK_SUCCESS; } diff --git a/api/src/common/components/XLink/shared/XLinkDispatcher.c b/api/src/common/components/XLink/shared/XLinkDispatcher.c index 997d27c..4f748fd 100644 --- a/api/src/common/components/XLink/shared/XLinkDispatcher.c +++ b/api/src/common/components/XLink/shared/XLinkDispatcher.c @@ -46,6 +46,7 @@ typedef enum { EVENT_BLOCKED, EVENT_READY, EVENT_SERVED, + EVENT_NEW, } xLinkEventState_t; typedef struct xLinkEventPriv_t { @@ -107,7 +108,20 @@ static void markEventServed(xLinkEventPriv_t* event); else \ x--; \ } +char* StateToStr(int state) +{ + switch(state) + { + case EVENT_PENDING: return "EVENT_PENDING"; + case EVENT_BLOCKED: return "EVENT_BLOCKED"; + case EVENT_READY: return "EVENT_READY"; + case EVENT_SERVED: return "EVENT_SERVED"; + case EVENT_NEW: return "EVENT_NEW"; + default: break; + } + return ""; +} char* TypeToStr(int type) { switch(type) @@ -290,13 +304,16 @@ static void markEventReady(xLinkEventPriv_t* event) event->isServed = EVENT_READY; } -static void markEventServed(xLinkEventPriv_t* event) -{ +static void eventPost(xLinkEventPriv_t* event) { if(event->sem){ if (sem_post(event->sem)) { mvLog(MVLOG_ERROR,"can't post semaphore\n"); } } +} +static void markEventServed(xLinkEventPriv_t* event) +{ + eventPost(event); event->isServed = EVENT_SERVED; } @@ -304,12 +321,14 @@ static int dispatcherRequestServe(xLinkEventPriv_t * event, xLinkSchedulerState_ ASSERT_X_LINK(curr != NULL); ASSERT_X_LINK(isEventTypeRequest(event)); xLinkEventHeader_t *header = &event->packet.header; + int served = 0; if (header->flags.bitField.block){ //block is requested markEventBlocked(event); - }else if(header->flags.bitField.localServe == 1 || + } else if(header->flags.bitField.localServe == 1 || (header->flags.bitField.ack == 0 && header->flags.bitField.nack == 1)){ //this event is served locally, or it is failed - markEventServed(event); + eventPost(event); + served = 1; }else if (header->flags.bitField.ack == 1 && header->flags.bitField.nack == 0){ event->isServed = EVENT_PENDING; @@ -318,7 +337,7 @@ static int dispatcherRequestServe(xLinkEventPriv_t * event, xLinkSchedulerState_ }else{ ASSERT_X_LINK(0); } - return 0; + return served; } @@ -384,7 +403,7 @@ static xLinkEventPriv_t* searchForReadyEvent(xLinkSchedulerState_t* curr) static xLinkEventPriv_t* getNextQueueElemToProc(eventQueueHandler_t *q ){ xLinkEventPriv_t* event = NULL; if (q->cur != q->curProc) { - event = getNextElementWithState(q->base, q->end, q->curProc, EVENT_SERVED); + event = getNextElementWithState(q->base, q->end, q->curProc, EVENT_NEW); q->curProc = event; CIRCULAR_INCREMENT(q->curProc, q->end, q->base); } @@ -405,6 +424,7 @@ static xLinkEvent_t* addNextQueueElemToProc(xLinkSchedulerState_t* curr, eventP->packet = *event; eventP->origin = o; q->cur = eventP; + eventP->isServed = EVENT_NEW; CIRCULAR_INCREMENT(q->cur, q->end, q->base); return ev; } @@ -509,16 +529,21 @@ static void* eventSchedulerRun(void* ctx) res = getResp(&event->packet, &response.packet); if (isEventTypeRequest(event)){ + int served = 0; if (event->origin == EVENT_LOCAL){ //we need to do this for locals only - dispatcherRequestServe(event, curr); + served = dispatcherRequestServe(event, curr); } if (res == 0 && event->packet.header.flags.bitField.localServe == 0){ glControlFunc->eventSend(toSend); } - }else{ + if (event->origin == EVENT_REMOTE || served) { + event->isServed = EVENT_SERVED; + } + } else { if (event->origin == EVENT_REMOTE){ // match remote response with the local request dispatcherResponseServe(event, curr); } + event->isServed = EVENT_SERVED; } //TODO: dispatcher shouldn't know about this packet. Seems to be easily move-able to protocol @@ -749,4 +774,4 @@ int dispatcherInitialize(struct dispatcherControlFunctions* controlFunc) { #endif } -/* end of file */ \ No newline at end of file +/* end of file */ diff --git a/api/src/common/components/XLink/shared/XLinkPlatform.h b/api/src/common/components/XLink/shared/XLinkPlatform.h index fef5be1..18f9cea 100644 --- a/api/src/common/components/XLink/shared/XLinkPlatform.h +++ b/api/src/common/components/XLink/shared/XLinkPlatform.h @@ -29,7 +29,7 @@ extern "C" #define MAX_POOLS_ALLOC 32 #define PACKET_LENGTH (64*1024) -//PCIe +//PCIe #define PCIE_MAX_BUFFER_SIZE (255 * 4096) #ifdef __PC__ #define MAX_LINKS 16 @@ -68,12 +68,13 @@ int XLinkPlatformResetRemote(void* fd); void* allocateData(uint32_t size, uint32_t alignment); void deallocateData(void* ptr,uint32_t size, uint32_t alignment); -typedef enum usbLinkPlatformErrorCode { +typedef enum xLinkPlatformErrorCode { X_LINK_PLATFORM_SUCCESS = 0, - X_LINK_PLATFORM_ERROR, - X_LINK_PLATFORM_DEVICE_NOT_FOUND, - X_LINK_PLATFORM_TIMEOUT -} usbLinkPlatformErrorCode_t; + X_LINK_PLATFORM_DEVICE_NOT_FOUND = -1, + X_LINK_PLATFORM_ERROR = -2, + X_LINK_PLATFORM_TIMEOUT = -3, + X_LINK_PLATFORM_DRIVER_NOT_LOADED = -4 +} xLinkPlatformErrorCode_t; #ifdef __cplusplus } diff --git a/api/src/common/components/XLink/shared/XLinkPublicDefines.h b/api/src/common/components/XLink/shared/XLinkPublicDefines.h index 5e691b0..b31dde3 100644 --- a/api/src/common/components/XLink/shared/XLinkPublicDefines.h +++ b/api/src/common/components/XLink/shared/XLinkPublicDefines.h @@ -27,7 +27,7 @@ extern "C" { #endif -#define XLINK_MAX_STREAMS 8 +#define XLINK_MAX_STREAMS 32 #define USB_LINK_MAX_PACKETS_PER_STREAM 64 typedef enum{ diff --git a/api/src/mvnc_api.c b/api/src/mvnc_api.c index 336a989..04ab3c4 100644 --- a/api/src/mvnc_api.c +++ b/api/src/mvnc_api.c @@ -250,7 +250,7 @@ static void resetAll() mvLog(MVLOG_INFO, "Stalled devices found, Reseting..."); XLinkResetAll(); #if (!defined(_WIN32) && !defined(_WIN64) ) - usleep(500000); //device takes some time to re-enumrate, wait till it's back + usleep(1000000); //device takes some time to re-enumrate, wait till it's back #endif iters = 0; @@ -840,7 +840,7 @@ ncStatus_t ncDeviceClose(struct ncDeviceHandle_t * deviceHandle) pthread_mutex_unlock(&globalMutex); #if (!defined(_WIN32) && !defined(_WIN64) ) - usleep(500000); //device takes some time to re-enumrate, wait till it's back + usleep(1000000); //device takes some time to re-enumrate, wait till it's back #endif return NC_OK; } @@ -1014,7 +1014,7 @@ ncStatus_t ncGraphAllocate(struct ncDeviceHandle_t * deviceHandle, if (sendGraphMonitorRequest(d->graph_monitor_stream_id, &cmd)) { mvLog(MVLOG_WARN, "can't send graph allocation command"); - pthread_mutex_lock(&d->graph_streamm); + pthread_mutex_unlock(&d->graph_streamm); return NC_ERROR; } if (XLinkWriteData(streamId, graphBuffer, graphBufferLength) != 0) { diff --git a/api/src/version.txt b/api/src/version.txt index 06e618d..4c5ee42 100644 --- a/api/src/version.txt +++ b/api/src/version.txt @@ -1 +1 @@ -2.08.01.02 +2.10.01.01 diff --git a/docs/TOC.html b/docs/TOC.html old mode 100644 new mode 100755 index 138d097..1a078ed --- a/docs/TOC.html +++ b/docs/TOC.html @@ -48,7 +48,7 @@ +{"url":"https://movidius.github.io/ncsdk/TOC.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/caffe.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Caffe Support","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/compiler_error.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"mvNCCompile Error Codes","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/configure_network.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Configuring Your Network for the Intel® Movidius™ Neural Compute SDK","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/docker.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Installation and Configuration with Docker","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/docker_proxy.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Configuring Docker For Use With a Proxy","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/examples.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Examples","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/","description":"Overview of the documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Introduction","@type":"WebSite","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/install.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Basic Installation and Configuration","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/c_api_migration.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Migrating C/C++ Applications from NCAPI v1 to NCAPI v2","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/c_api/mvncAllocateGraph.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"mvncAllocateGraph() [C NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/c_api/mvncCloseDevice.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"mvncCloseDevice() [C NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/c_api/mvncDeallocateGraph.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"mvncDeallocateGraph() [C NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/c_api/mvncDeviceOptions.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"mvncDeviceOptions enum [C NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/c_api/mvncGetDeviceName.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"mvncGetDeviceName() [C NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/c_api/mvncGetDeviceOption.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"mvncGetDeviceOption() [C NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/c_api/mvncGetGlobalOption.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"mvncGetGlobalOption() [C NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/c_api/mvncGetGraphOption.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"mvncGetGraphOption() [C NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/c_api/mvncGetResult.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"mvncGetResult() [C NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/c_api/mvncGlobalOptions.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"mvncGlobalOptions enum [C NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/c_api/mvncGraphOptions.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"mvncGraphOptions enum [C NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/c_api/mvncLoadTensor.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"mvncLoadTensor() [C NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/c_api/mvncOpenDevice.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"mvncOpenDevice() [C NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/c_api/mvncSetDeviceOption.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"mvncSetDeviceOption() [C NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/c_api/mvncSetGlobalOption.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"mvncSetGlobalOption() [C NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/c_api/mvncSetGraphOption.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"mvncSetGraphOption() [C NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/c_api/mvncStatus.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"mvncStatus enum [C NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/c_api/readme.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Intel® Movidius™ Neural Compute SDK C API v1","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/py_api/Device.AllocateGraph.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Device.AllocateGraph() [Python NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/py_api/Device.CloseDevice.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Device.CloseDevice() [Python NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/py_api/Device.GetDeviceOption.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Device.GetDeviceOption() [Python NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/py_api/Device.OpenDevice.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Device.OpenDevice() [Python NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/py_api/Device.SetDeviceOption.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Device.SetDeviceOption() [Python NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/py_api/Device.__init__.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Device.init() [Python NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/py_api/Device.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Device class [Python NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/py_api/DeviceOption.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"DeviceOption enum [Python NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/py_api/EnumerateDevices.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"EnumerateDevices() [Python NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/py_api/GetGlobalOption.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"GetGlobalOption() [Python NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/py_api/GlobalOption.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"GlobalOption enum [Python NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/py_api/Graph.DeallocateGraph.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Graph.DeallocateGraph() [Python NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/py_api/Graph.GetGraphOption.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Graph.GetGraphOption() [Python NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/py_api/Graph.GetResult.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Graph.GetResult() [Python NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/py_api/Graph.LoadTensor.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Graph.LoadTensor() [Python NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/py_api/Graph.SetGraphOption.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Graph.SetGraphOption() [Python NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/py_api/Graph.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Graph class [Python NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/py_api/GraphOption.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"GraphOption enum [Python NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/py_api/SetGlobalOption.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"SetGlobalOption() [Python NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/py_api/Status.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Status enum [Python NCAPI v1]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/py_api/readme.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Intel® Movidius™ Neural Compute SDK Python API v1","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi1/readme.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncDeviceClose.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncDeviceClose() [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncDeviceCreate.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncDeviceCreate() [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncDeviceDestroy.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncDeviceDestroy() [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncDeviceGetOption.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncDeviceGetOption() [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncDeviceHandle_t.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncDeviceHandle_t struct [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncDeviceHwVersion_t.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncDeviceHwVersion_t enum [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncDeviceOpen.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncDeviceOpen() [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncDeviceOption_t.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncDeviceOption_t enum [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncDeviceSetOption.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncDeviceSetOption() [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncDeviceState_t.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncDeviceState_t enum [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncFifoAllocate.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncFifoAllocate() [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncFifoCreate.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncFifoCreate() [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncFifoDataType_t.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncFifoDataType_t enum [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncFifoDestroy.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncFifoDestroy() [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncFifoGetOption.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncFifoGetOption() [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncFifoHandle_t.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncFifoHandle_t struct [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncFifoOption_t.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncFifoOption_t enum [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncFifoReadElem.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncFifoReadElem() [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncFifoRemoveElem.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncFifoRemoveElem() [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncFifoSetOption.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncFifoSetOption() [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncFifoState_t.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncFifoState_t enum [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncFifoType_t.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncFifoType_t enum [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncFifoWriteElem.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncFifoWriteElem() [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncGlobalGetOption.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncGlobalGetOption() [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncGlobalOption_t.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncGlobalOption_t enum [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncGlobalSetOption.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncGlobalSetOption() [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncGraphAllocate.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncGraphAllocate() [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncGraphAllocateWithFifos.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncGraphAllocateWithFifos() [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncGraphAllocateWithFifosEx.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncGraphAllocateWithFifosEx() [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncGraphCreate.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncGraphCreate() [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncGraphDestroy.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncGraphDestroy() [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncGraphGetOption.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncGraphGetOption() [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncGraphHandle_t.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncGraphHandle_t struct [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncGraphOption_t.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncGraphOption_t enum [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncGraphQueueInference.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncGraphQueueInference() [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncGraphQueueInferenceWithFifoElem.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncGraphQueueInferenceWithFifoElem() [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncGraphSetOption.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncGraphSetOption() [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncGraphState_t.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncGraphState_t enum [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncLogLevel_t.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncStatus_t.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncStatus_t enum [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/ncTensorDescriptor_t.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"ncTensorDescriptor_t struct [C NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/c_api/readme.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Intel® Movidius™ Neural Compute SDK C API v2","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/Device.close.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Device.close() [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/Device.destroy.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Device.destroy() [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/Device.get_option.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Device.get_option() [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/Device.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Device class [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/Device.open.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Device.open() [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/Device.set_option.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Device.set_option() [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/DeviceHwVersion.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"enum DeviceHwVersion [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/DeviceOption.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"enum DeviceOption [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/DeviceState.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"enum DeviceState [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/Fifo.allocate.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Fifo.allocate() [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/Fifo.destroy.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Fifo.destroy() [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/Fifo.get_option.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Fifo.get_option() [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/Fifo.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Fifo class [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/Fifo.read_elem.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Fifo.read_elem() [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/Fifo.remove_elem.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Fifo.remove_elem() [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/Fifo.set_option.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Fifo.set_option() [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/Fifo.write_elem.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Fifo.write_elem() [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/FifoDataType.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"FifoDataType enum [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/FifoOption.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"FifoOption enum [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/FifoState.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"FifoState enum [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/FifoType.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"FifoType enum [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/GlobalOption.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"GlobalOption enum [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/Graph.allocate.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Graph.allocate() [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/Graph.allocate_with_fifos.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Graph.allocate_with_fifos() [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/Graph.destroy.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Graph.destroy() [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/Graph.get_option.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Graph.get_option() [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/Graph.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Graph class [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/Graph.queue_inference.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Graph.queue_inference() [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/Graph.queue_inference_with_fifo_elem.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Graph.queue_inference_with_fifo_elem() [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/Graph.set_option.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Graph.set_option() [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/GraphOption.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"GraphOption enum [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/GraphState.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"GraphState enum [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/LogLevel.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/Status.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Status enum [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/TensorDescriptor.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"TensorDescriptor struct [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/enumerate_devices.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"enumerate_devices() [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/global_get_option.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"global_get_option() [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/global_set_option.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"global_set_option() [Python NCAPI v2]","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/py_api/readme.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Intel® Movidius™ Neural Compute SDK Python API v2","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/ncapi2/readme.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/python_api_migration.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Migrating Python Applications from NCAPI v1 to NCAPI v2","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncapi/readme.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Neural Compute API Overview","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/ncs.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Intel® Movidius™ Neural Compute Stick","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/release_notes.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Release Notes","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/support.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Support","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/tensorflow.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"TensorFlow Support","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/tf_compile_guidance.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Guidance for Compiling TensorFlow Networks","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/tf_modelzoo.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Guidance for Compiling TensorFlow™ Model Zoo Networks","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/tf_slim.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Guidance for Compiling TensorFlow-Slim Networks","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/tools/check.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"mvNCCheck","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/tools/compile.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"mvNCCompile","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/tools/profile.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"mvNCProfile","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/tools/tools_overview.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Intel® Movidius™ Neural Compute SDK Toolkit","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/virtualenv.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Installation and Configuration with virtualenv","@type":"WebPage","@context":"http://schema.org"} +{"url":"https://movidius.github.io/ncsdk/vm_config.html","description":"Documentation for the Intel® Movidius™ Neural Compute SDK and Intel® Movidius™ Neural Compute API.","headline":"Installation and Configuration with a Virtual Machine","@type":"WebPage","@context":"http://schema.org"}