Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing Modules for C_HLS Export #5

Closed
weierwan opened this issue Jul 17, 2017 · 1 comment
Closed

Missing Modules for C_HLS Export #5

weierwan opened this issue Jul 17, 2017 · 1 comment
Labels

Comments

@weierwan
Copy link

Hi. I'm trying to use the tool to export the trained model into C_HLS codes as shown in the manual. However the tool prompts me that additional modules are needed for the export. I wonder if the module for C_HLS export is missing? It seems the only available export right now is CPP_cuDNN. Thanks.

@olivierbichler-cea
Copy link
Contributor

Hello,

While N2D2 is our deep learning open-source core framework, some modules referred as "N2D2-IP" in the manual, are only available through custom license agreement with CEA LIST.

If you are interested in obtaining some of these modules, please contact our business developer for more information on available licensing options:

Sandrine VARENNE (Sandrine.VARENNE@cea.fr)

In addition to N2D2-IP modules, we can also provide our expertise to design specific solutions for integrating DNN in embedded hardware systems, where power, latency, form factor and/or cost are constrained. We can target CPU/DSP/GPU CoTS hardware as well as our own PNeuro (programmable) and DNeuro (dataflow) dedicated hardware accelerator IPs for DNN on FPGA or ASIC.

This is now clarified in the new "About N2D2-IP" section in the manual (rev 8a294d7).

olivierbichler-cea pushed a commit that referenced this issue Nov 30, 2021
Changing init -> make_compositable fixed the issue.
olivierbichler-cea added a commit that referenced this issue Nov 30, 2021
merge experimental into master

Closes #39, #28, #27, #17, #20, and #5

See merge request n2d2/n2d2!9
olivierbichler-cea pushed a commit that referenced this issue Apr 15, 2022
## Context

The Python API initializes several times deepNets with the Keras Interop. However, it is an impossible behaviour with the MultiGPU.
The objective of this MR is to fix this issue.

## Issue

Some logs about the issue:
```
CUBLAS initialized on device #5
Cuda failure: peer access is already enabled (704) in n2d2/src/DeepNet.cpp:1027 on device #7

### Training ###

# Train Epoch: 0 #
Traceback (most recent call last):
  File "../quantizer_ONNX.py", line 153, in <module>
    x = provider.read_random_batch()
  File "n2d2/python/n2d2/provider.py", line 186, in read_random_batch
    self._deepnet.N2D2().initialize()
RuntimeError: Cuda failure: peer access is already enabled (704) in n2d2/src/DeepNet.cpp:1027 on device #7
```

To speed up the communications among devices, there is a CUDA option to enable peer accesses among devices when it is possible.
The activation of this option happens during the initialization of the deepNet but should only happen once. With the Python API, the initialization is executed more than one time and creates this issue.

## Solution

To fix the problem, the "enable function" has been moved to CudaUtils and should be executed just at the beginning of the program.
Moreover, if the function is called more than one time, a warning will be raised.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants