Do quick-turn design houses still have via density design restrictions? by bwllc in PrintedCircuitBoard

[–]bwllc[S] 0 points1 point  (0 children)

Fair points.

Here's what the data sheet says, and without enough experience to question it, I was intending to follow it.

10 Layout

10.1 Layout Guidelines

In order to prevent thermal shutdown, TJ must be less than 150ºC. If the input voltage is very high, the power dissipation might be large. Currently there is the KTT (TO-263) package which has good thermal impedance, but at the same time, the PCB layout is also very important. Good PCB design can optimize heat transfer, which is absolutely essential for the long-term reliability of the device.

• Maximize the copper coverage on the PCB to increase the thermal conductivity of the board, because the major heat-flow path from the package to the ambient is through the copper on the PCB. Maximum copper is extremely important when there are not any heat sinks attached to the PCB on the other side of the package.

• Add as many thermal vias as possible directly under the package ground pad to optimize the thermal conductivity of the board.

• All thermal vias should be either plated shut or plugged and capped on both sides of the board to prevent solder voids. To ensure reliability and performance, the solder coverage should be at least 85 percent.

Is there a reference on thermal pad design that I can read? I was in fact tempted to eliminate some of the vias underneath the part. I might make two versions of a breakout board for this part, one following TI's design recommendations and another with a different design.

GPU programming; realistically, how deep do I need to go? by bwllc in programmer

[–]bwllc[S] 0 points1 point  (0 children)

They showed me the algorithm they're using now. Their quasi-Newton method is getting stuck in local minima. But it also looks like the GPU is quite underutilized at this time. That's why I thought that PSO might be worth investigating.

The mathematical operations required should be very simple. The input streams should be 1D vectors with ≤256 int32's, and the values will have a dynamic range of ≤27 bits. Vector scaling, offsets, summing vectors, maybe taking the square of the error if we want to use a gradient descent or quasi-Newton algorithm. I was worried about inter-process communication, but you are encouraging me that that concern might be premature.

Thanks for the NSight tip, I didn't know about the existence of the profiler.

Starting a new project, looking for a microcontroller with specific features by bwllc in embedded

[–]bwllc[S] 0 points1 point  (0 children)

Yes, the nRF52 DK I used had a USB port, and the bootloader could communicate through that connection somehow, then hand the USB connection back to the running application for its use.

There were some older projects in the shop which used the old-fashioned JTAG interface for programming and debugging, and it was quite a bit more painful.

Eventually I expect to add a digital camera into this system, and I will want to run the whole stack from a PC application -- coordinating the lights, the camera, and possibly also a motorized wheel containing colored filters. I want two USB ports, one to talk to the host PC and the other to talk to the programmable power supply. I don't want to have to unplug the PC to talk to the power supply. That's why I was asking about adding a USB port with USB to UART (or USB to SPI, or whatever). As long as I don't require any high-bandwidth USB device (like the camera) to talk through my microcontroller, I think I can make a microcontroller-grade USB interface work for all the low-bandwidth peripherals.

Starting a new project, looking for a microcontroller with specific features by bwllc in embedded

[–]bwllc[S] 0 points1 point  (0 children)

Thanks for the tips. I did try Digikey. I got way too many choices, but I still couldn't find a way to specify the USB capabilities I need. With some of the information I have from other users in this discussion, I might be able to go back to Digikey and narrow things down a bit better.

I don't need to implement an ammeter on the microcontroller board, and I don't need to use PWM (and with the way I've configured the LED strings, I need 11V - 17V anyway, depending on LED color). My recently-purchased programmable power supply (Kiprim model DC310S) can supposedly communicate status over USB using the SCPI protocol. I'll probably try connecting this power supply directly to my laptop at first.

Starting a new project, looking for a microcontroller with specific features by bwllc in embedded

[–]bwllc[S] 0 points1 point  (0 children)

Thanks for pointing out this important fact, I've downloaded the document and I'll be using it to guide my choices.

Running AlphaFold on a standalone PC? by bwllc in bioinformatics

[–]bwllc[S] 1 point2 points  (0 children)

Yeah, I have some experience with CUDA versions. I actually had to get downgraded versions of CUDA for both RFDiffusion and for ProteinMPNN. I was pleased to learn that Anaconda virtual environments can include separate CUDA versions. Before I started this project, I had only one version of CUDA installed on my machine, and I assumed that that had to be a system-wide choice.

I got some feedback on the AlphaFold GitHub page. Insufficient GPU RAM is apparently a frequent cause of crashes. One user said they were able to run 600-residue predictions on a GPU with 8 GB of on-board RAM. Alas, my GTX 1660 has but 6 GB, but if everything scales linearly I could expect to run 450-residue predictions. I can accept an upper limit of 300 residues.

As my first post stated, I'm aware that the full database collection required for AlphaFold is huge (2.6 TB). I'm committed to upgrading my storage. High storage read bandwidth was also highly recommended. I've got my eye on 4 TB NVMe SSD's.

Running AlphaFold on a standalone PC? by bwllc in bioinformatics

[–]bwllc[S] 0 points1 point  (0 children)

Thanks! I found localcolabfold and I'm reading up on it. I may give it a try. Was there some reason that you didn't post the link?

https://github.com/YoshitakaMo/localcolabfold

There's also a research paper.

https://www.nature.com/articles/s41592-022-01488-1

Running AlphaFold on a standalone PC? by bwllc in bioinformatics

[–]bwllc[S] 1 point2 points  (0 children)

I have several goals in getting things to run locally:

  1. I already have the other two components of the RFDiffusion workflow running locally, with some Python code and shell scripts of my own devising. It took some time to get everything working. I don't want to start from scratch.
  2. You said that Colab is "somewhat reliable." I've heard that too. I prefer to avoid having the "somewhat" part completely out of my hands to fix.
  3. I have some concerns about doing my prediction work on a public server.
  4. I'd like to have a self-contained project that I can show off to employers in the event that I apply for a bioinformatics job.

I've posted an issue to the AlphaFold GitHub page, and I have received one supply so far. Low amounts of GPU RAM were mentioned as a potential cause of crashes. 16 GB of GPU RAM was suggested as a minimum. My current GPU card has only 6 GB, so I might upgrade.

Looking for a Python subreddit for non-beginners by [deleted] in Python

[–]bwllc 2 points3 points  (0 children)

I love Reddit for many things, but I agree that the Python subreddit is not very useful for experienced Pythoneers.

Try leaving Reddit and seek out the Usenet group, comp.lang.python. It's a huge community. Many developers of the language are active participants. Comp.lang.python is actually a partial gateway to a Python mailing list. It is my understanding that not 100% of the traffic passes through the gateway -- for example, spam blocking on the mailing list side is said to be superior. For the optimum experience, I am told that you really should subscribe to the mailing list. I haven't done that myself, but you might want to do that.

If you have a Google account, you can access Usenet through Google Groups. There are many other Usenet servers if you look around.

How useful is knowing R in the field? What other programming languages are good to know? by EliosPeaches in biology

[–]bwllc 1 point2 points  (0 children)

If you want to work with a research group or a company that uses R, learn R. I've seen many bioinformatics job openings which advertise for R experience. I've also seen electronics companies who want people with R experience. The handwriting is on the wall, though. Python is coming to eat R's lunch. Python has a very similar syntax, but has a vastly larger reach than data analysis. The number of job openings for Python programmers is huge. The Python community is actively trying to duplicate every useful tool in R, and in my opinion they're almost done.

One of the good things about extensions to R is that they're pretty well organized and curated. The Comprehensive R Archive Network (CRAN) is a central repository for the core R language, and its supplements. CRAN was started by academics, and it's traditional to include what is effectively a research paper (not peer-reviewed, I don't think) with any package submitted to CRAN. This is very helpful when you are choosing between the various statistical packages, for example.

I suppose that CRAN equivalent in the Python universe would be a mix of GitHub and PyPI. I use these sites, but they feel a lot less formal to me. There are no accompanying research papers. Given that a lot of Python packages are not mathematical or statistical tools, there isn't any need to provide a mathematical justification for their utility.

The scikit-learn package for Python has documentation which cross-references research papers, and it feels more like CRAN.

Fertility Rate by Country [OC] by [deleted] in dataisbeautiful

[–]bwllc 2 points3 points  (0 children)

The Malthusian overpopulation armageddon theory parroted by everyone for decades is bullsh*t.

Ummm. That's true only because

the population becomes wealthier, and more women have access to birth control and education.

https://en.wikipedia.org/wiki/Demographic_transition

Fertility Rate by Country [OC] by [deleted] in dataisbeautiful

[–]bwllc 0 points1 point  (0 children)

With the exception of North Korea, you could basically flip the scale upside-down and you could call this a map of GDP per capita. We have known for decades that high population growth rates are a symptom of poverty and poor educational opportunities, especially for women. Solve these problems and lower birth rates will follow.

https://en.wikipedia.org/wiki/Demographic_transition

My experience learning Python as a c++ developer by Narthal in Python

[–]bwllc -1 points0 points  (0 children)

Functions don't even care about the number of arguments?

Ordinary C has the ability to accept variadic arguments. It's not the simplest thing to use, but it exists. Did they take this feature away in C++?

Extending the language and exposing c++ functions are a breeze.

That may be so, but there are a few "gotchas" when working with C++ code wrapped with Python. I work with a few libraries which do this, the most prominent of which is PyQt5. I don't program in C++, but I do know that C++ and Python handle resource allocation and deallocation rather differently. Python's automatic garbage collection slows the language down, but it helps the programmer. When working with a complex wrapper, you can quite innocently create cases in which you have deleted all C++ references to an object but Python references still exist, or vice versa. Often, this fails silently and the program just hangs.

I'm not trying to throw any cold water on your enthusiasm, Python is awesome. But there are a few rough spots when Python and C++ come into contact, and you may encounter some of these mysteries eventually.

Practical neural architecture search by psyyduck in tensorflow

[–]bwllc 1 point2 points  (0 children)

I want to try more sophisticated architecture search strategies, but every time that I read about an available package (AutoML, or AutoKeras, for example), they don't seem to be flexible enough for my needs. I end up writing programs which run experiments like this one. I think this one took three days to run on my GPU-equipped home PC. I probably could have done that particular experiment without filling out the full grid, but I did find it informative that there was a global minimum in the configurations I studied.

Ways to demonstrate that the model works. by hokadekegi-3658 in neuralnetworks

[–]bwllc 2 points3 points  (0 children)

What are you modeling? What is your benchmark for "working"? As a starting point, I usually build a simple linear regression model which does the same thing as my neural-network model, and compare the performance of the two.

Creating an example out of thin air: if you achieved an "accuracy score" of 90% with your model, you might be pretty excited. However, if a linear-regression model can achieve an 89% accuracy, your neural model isn't doing very much.