Cmake giving error “compute_20”, even though the architecture is explicitly unstated in the make file

I have the same error as the person in this question, however, when I tried the solution (Just delete the target for compute_20), I’m still getting the error, even after cleaning the project.

To be specific: I’m trying to install caffe by following these instructions, step by step. Even more specifically, here is my steps.

I run sudo cmake .., and I get the following information:

CMake Warning (dev) at cmake/Misc.cmake:32 (set):   implicitly converting 'BOOLEAN' to 'STRING' type. Call Stack (most recent call first):   CMakeLists.txt:24 (include) This warning is for project developers.  Use -Wno-dev to suppress it.  -- Found Boost: /usr/include (found suitable version "1.65.1", minimum required is "1.46") found components:  system thread filesystem chrono date_time atomic  -- Found gflags  (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/libgflags.so) -- Found glog    (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/libglog.so) -- Found PROTOBUF Compiler: /usr/bin/protoc -- HDF5: Using hdf5 compiler wrapper to determine C configuration -- HDF5: Using hdf5 compiler wrapper to determine CXX configuration -- Found lmdb    (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/liblmdb.so) -- Found LevelDB (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/libleveldb.so) -- Found Snappy  (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/libsnappy.so) -- CUDA detected: 10.1 -- Automatic GPU detection failed. Building for all known architectures. -- Added CUDA NVCC flags for: sm_20 sm_21 sm_30 sm_35 sm_50 -- OpenCV found (/usr/share/OpenCV) -- Found OpenBLAS libraries: /usr/lib/x86_64-linux-gnu/libopenblas.so -- Found OpenBLAS include: /usr/include/x86_64-linux-gnu -- NumPy ver. 1.11.0 found (include: /usr/local/lib/python2.7/dist-packages/numpy/core/include) -- Found Boost: /usr/include (found suitable version "1.65.1", minimum required is "1.46") found components:  python  -- Found NCCL (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/libnccl.so) -- Detected Doxygen OUTPUT_DIRECTORY: ./doxygen/ --  -- ******************* Caffe Configuration Summary ******************* -- General: --   Version           :   0.15.14 --   Git               :   v0.15.14-16-g4b8d54d8-dirty --   System            :   Linux --   C++ compiler      :   /usr/bin/c++ --   Release CXX flags :   -O3 -DNDEBUG -fPIC -Wall -Wno-sign-compare -Wno-uninitialized --   Debug CXX flags   :   -g -fPIC -Wall -Wno-sign-compare -Wno-uninitialized --   Build type        :   Release --  --   BUILD_SHARED_LIBS :   ON --   BUILD_python      :   ON --   BUILD_matlab      :   OFF --   BUILD_docs        :   ON --   CPU_ONLY          :   OFF --   USE_OPENCV        :   ON --   USE_LEVELDB       :   ON --   USE_LMDB          :   ON --   ALLOW_LMDB_NOLOCK :   OFF --  -- Dependencies: --   BLAS              :   Yes (open) --   Boost             :   Yes (ver. 1.65) --   glog              :   Yes --   gflags            :   Yes --   protobuf          :   Yes (ver. 3.0.0) --   lmdb              :   Yes (ver. 0.9.21) --   LevelDB           :   Yes (ver. 1.20) --   Snappy            :   Yes (ver. ..) --   OpenCV            :   Yes (ver. 3.2.0) --   CUDA              :   Yes (ver. 10.1) --  -- NVIDIA CUDA: --   Target GPU(s)     :   Auto --   GPU arch(s)       :   sm_20 sm_21 sm_30 sm_35 sm_50 --   cuDNN             :   Not found --   NCCL              :   Yes --  -- Python: --   Interpreter       :   /usr/bin/python2.7 (ver. 2.7.15) --   Libraries         :   /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.15+) --   NumPy             :   /usr/local/lib/python2.7/dist-packages/numpy/core/include (ver 1.11.0) --  -- Documentaion: --   Doxygen           :   /usr/bin/doxygen (1.8.13) --   config_file       :   /home/par/caffe/.Doxyfile --  -- Install: --   Install path      :   /home/par/caffe/build/install --  -- Configuring done -- Generating done -- Build files have been written to: /home/par/caffe/build 

NOTE: The configuration says specifically that it’s compiling to sm_20 compute version, which is not what I want to do. I searched all files that I have for this “sm_20” token, and the results are all in /caffe/build/src/caffe/CMakeFiles/cuda_compile_1.dir/, meaning that they are not contained within a make file.

I searched the same files for a compute_20 mention, and once again, the only mentions are in the directory above. I remove them, keeping syntax in check, and then run make -j"$ (nproc)" to which I get the following error:

[  6%] Building NVCC (Device) object src/caffe/CMakeFiles/cuda_compile_1.dir/layers/cuda_compile_1_generated_crop_layer.cu.o nvcc fatal   : Unsupported gpu architecture 'compute_20' CMake Error at cuda_compile_1_generated_math_functions.cu.o.Release.cmake:219 (message):   Error generating   /home/par/caffe/build/src/caffe/CMakeFiles/cuda_compile_1.dir/util/./cuda_compile_1_generated_math_functions.cu.o 

What is the cause of this, if compute_20 nor sm_20 are mentioned in any makefile?

Why don’t explicitly mobile sites redirect you to the desktop site when using a desktop?

If visiting a page such as https://en.wikipedia.org/wiki/Main_Page on a mobile device redirects you to https://en.m.wikipedia.org/wiki/Main_Page then why doesn’t the reverse ever happen? I.e. sending desktop users away from m. subdomains.

I understand that the basic answer is “it requires more programming”, albeit minuscule, so why is the effort never put in?

The m. subdomain was the de facto method for presenting a mobile site to visitors and I don’t recall ever coming across a site that would direct desktop users away from m. subdomains even though they often times looked terrible, barren, or downright broken on a desktop.

My question stems from lack of experience in ever developing m. websites so I am hoping for some insight from others that had to develop m. sites.

make an array of objects which explicitly has label and value eg [{label: ‘school’, value: ‘college’}

using this.state.student in react to display (name,school,class.etc).. how do i change the “school” display to “college” without replacing the value of “School” in the api.

where do i place it in reactjs? . i just started learning

i tried ‘var student = [ {“name”, “school”, “class”}];’ ‘student[1] = “college”;’

but it replaces the actual value i don’t want that

result should be when drop down is clicked it shows “college” but the api value remains “school”

Had $\sf Con(ZFC)$ been explicitly written in first order language?

One always hear of $ \sf Con(ZFC)$ and what is mean is an arithmetical sentence that is equivalent to $ \sf ZFC \text { is consistent }$ that is written in the language of first order $ \sf ZFC$ . However, I never seen an actual first order sentence expressing this? Had this statement been explicitly written in the first order language of set theory before? and where can I find examples of those writings.

Are there events that should be explicitly tracked or ignored?

While doing research to solve How to automatically re-raise exception after handlers, a exception class was developed with the capability of automatically throwing itself again after it has been handled (inspired by the ThreadAbortException in C#). After a lot of trial and error, the class has been demonstrated to work in the simplest of cases. My concern is that there may be unnecessary overhead if an exception handler calls a function or an exception handler has its own try and handler blocks in it.

The class and its test so far is this:

#! /usr/bin/env python3 import dis import inspect import sys   def main():     try:         raise SpecialError     except SpecialError as error:         print(f'{error!r} was caught!')         # error.reset()     print('You should not see this!')   class SpecialError(BaseException):     DEBUG = False     THROW = {dis.opmap['END_FINALLY'], dis.opmap['POP_EXCEPT']}      def __init__(self, *args):         super().__init__(*args)         self.__stack = []         frame = inspect.currentframe()         while frame:             self.__stack.append((frame, frame.f_trace))             frame.f_trace = self.__trace             frame = frame.f_back         self.__saved = sys.gettrace()         sys.settrace(self.__trace)      def __trace(self, frame, event, arg):         frame.f_trace_lines = False         frame.f_trace_opcodes = True         if event == 'opcode':             op = frame.f_code.co_code[frame.f_lasti]             if self.DEBUG:                 print(dis.opname[op])             if op in self.THROW:                 raise self         return self.__trace      def reset(self):         sys.settrace(self.__saved)         for frame, trace in self.__stack:             frame.f_trace = trace   if __name__ == '__main__':     main() 

Are there any events where tracing should be disabled, and are there any opcodes that should be recorded to a stack and popped off to detect when the exception should truly raise itself again (after the end of handler blocks it was caught in)?

How does explicitly defining proxy workers relate to MaxRequestWorkers in Apache?

I have the exact setup and question which was asked and answered here:

Apache mod_proxy_fcgi: One proxy worker per vhost?

However, I do not fully understand the answer, which suggests that each explicitly defined proxy worker is an “mpm worker”.

How do the 2 built-in forward/reverse proxy workers and the explicitly defined proxy workers relate to the event mpm worker configuration options?

Should each vhost define its own proxy worker by using a unique name?

Why mark a transaction as RBF (Replace-by-Fee) explicitly?

I could broadcast a second transaction that has the same inputs but a higher fee, without marking the original transaction as replaceable. Miners would most likely favor the second transaction and reject the original one. Why should I mark my transactions as replacable if they can always be replaced by broadcasting another conf-0 transaction?

Rely only on status or provide response explicitly? – SOA –

I am developing a set of SOA services where the backends (mainly stored procedures in the DB) sometimes return only status code as response (ex: an operation to cancel a ticket, the SP for this operation returns status = 000 in case of success , otherwise failure), now my question is : Design wise, Is it correct to propagate the same behavior to the frontend (I have already have a status field in every service which tells the status of the call, so I can use it) , or is it better to define a boolean for example to tell if the booking was cancelled or not.

My main concern is that If I use the status field, the technical errors (like connectivity and authenticity and so on) will be mixed with business errors (like failure to cancel booking due to time constraint for example) … both will be represented in the same field “status”